Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / Configuration / ConfigurationUtility.cs / 1305376 / ConfigurationUtility.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery.Configuration { using System.Configuration; using System.Runtime; using System.Security; using System.ServiceModel.Configuration; using System.ServiceModel.Description; using SR2 = System.ServiceModel.Discovery.SR; class ConfigurationUtility { public static ChannelEndpointElement GetDefaultDiscoveryEndpointElement() { return new ChannelEndpointElement() { Kind = ConfigurationStrings.UdpDiscoveryEndpoint }; } public static T LookupEndpoint(ChannelEndpointElement channelEndpointElement) where T : ServiceEndpoint { Fx.Assert(channelEndpointElement != null, "The parameter channelEndpointElement must be non null."); Fx.Assert(!string.IsNullOrEmpty(channelEndpointElement.Kind), "The Kind property of the specified channelEndpointElement parameter cannot be null or empty."); return ConfigLoader.LookupEndpoint(channelEndpointElement, null) as T; } internal static void InitializeAndValidateUdpChannelEndpointElement(ChannelEndpointElement channelEndpointElement) { if (!String.IsNullOrEmpty(channelEndpointElement.Binding)) { throw FxTrace.Exception.AsError(new ConfigurationErrorsException(SR2.DiscoveryConfigBindingSpecifiedForUdpDiscoveryEndpoint(channelEndpointElement.Kind)));; } if (!(channelEndpointElement.Address == null || String.IsNullOrEmpty(channelEndpointElement.Address.ToString()))) { throw FxTrace.Exception.AsError(new ConfigurationErrorsException(SR2.DiscoveryConfigAddressSpecifiedForUdpDiscoveryEndpoint(channelEndpointElement.Kind))); } channelEndpointElement.Address = null; } internal static void InitializeAndValidateUdpServiceEndpointElement(ServiceEndpointElement serviceEndpointElement) { if (!String.IsNullOrEmpty(serviceEndpointElement.Binding)) { throw FxTrace.Exception.AsError(new ConfigurationErrorsException(SR2.DiscoveryConfigBindingSpecifiedForUdpDiscoveryEndpoint(serviceEndpointElement.Kind)));; } if (!(serviceEndpointElement.Address == null || String.IsNullOrEmpty(serviceEndpointElement.Address.ToString()))) { throw FxTrace.Exception.AsError(new ConfigurationErrorsException(SR2.DiscoveryConfigAddressSpecifiedForUdpDiscoveryEndpoint(serviceEndpointElement.Kind))); } serviceEndpointElement.Address = null; if (serviceEndpointElement.ListenUri != null) { throw FxTrace.Exception.AsError(new ConfigurationErrorsException(SR2.DiscoveryConfigListenUriSpecifiedForUdpDiscoveryEndpoint(serviceEndpointElement.Kind))); } } [Fx.Tag.SecurityNote(Critical = "it is calling the SecurityCritical method to load client configuration section", Safe = "no configuration objects are leaked")] [SecuritySafeCritical] internal static TEndpoint LookupEndpointFromClientSection (string endpointConfigurationName) where TEndpoint : ServiceEndpoint { Fx.Assert(endpointConfigurationName != null, "The endpointConfigurationName parameter must be non null."); TEndpoint retval = default(TEndpoint); bool wildcard = string.Equals(endpointConfigurationName, "*", StringComparison.Ordinal); ClientSection clientSection = ClientSection.GetSection(); foreach (ChannelEndpointElement channelEndpointElement in clientSection.Endpoints) { if (string.IsNullOrEmpty(channelEndpointElement.Kind)) { continue; } if (endpointConfigurationName == channelEndpointElement.Name || wildcard) { TEndpoint endpoint = LookupEndpoint (channelEndpointElement); if (endpoint != null) { if (retval != null) { if (wildcard) { throw FxTrace.Exception.AsError( new InvalidOperationException( SR2.DiscoveryConfigMultipleEndpointsMatchWildcard( typeof(TEndpoint).FullName, clientSection.SectionInformation.SectionName))); } else { throw FxTrace.Exception.AsError( new InvalidOperationException( SR2.DiscoveryConfigMultipleEndpointsMatch( typeof(TEndpoint).FullName, endpointConfigurationName, clientSection.SectionInformation.SectionName))); } } else { retval = endpoint; } } } } if (retval == null) { if (wildcard) { throw FxTrace.Exception.AsError( new InvalidOperationException( SR2.DiscoveryConfigNoEndpointsMatchWildcard( typeof(TEndpoint).FullName, clientSection.SectionInformation.SectionName))); } else { throw FxTrace.Exception.AsError( new InvalidOperationException( SR2.DiscoveryConfigNoEndpointsMatch( typeof(TEndpoint).FullName, endpointConfigurationName, clientSection.SectionInformation.SectionName))); } } return retval; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Utils.cs
- ChangeProcessor.cs
- Monitor.cs
- Localizer.cs
- BufferAllocator.cs
- WindowsServiceCredential.cs
- DocumentAutomationPeer.cs
- Wildcard.cs
- TextStore.cs
- Zone.cs
- FontSource.cs
- UserControl.cs
- sqlcontext.cs
- ContractNamespaceAttribute.cs
- __Error.cs
- TreeNodeConverter.cs
- XmlDocumentSchema.cs
- Point3DAnimationBase.cs
- Filter.cs
- CreateParams.cs
- ExpandedWrapper.cs
- TypeDescriptionProvider.cs
- CodeTypeDeclaration.cs
- SymbolType.cs
- Misc.cs
- Expression.cs
- ListViewItem.cs
- PointLightBase.cs
- StrokeIntersection.cs
- StyleConverter.cs
- DurableOperationContext.cs
- LayoutTable.cs
- PropertyPushdownHelper.cs
- pingexception.cs
- PropertyInfo.cs
- Constants.cs
- TextPenaltyModule.cs
- InternalPermissions.cs
- EpmContentSerializer.cs
- ToolStripDropDownClosingEventArgs.cs
- Itemizer.cs
- ArrayTypeMismatchException.cs
- ViewStateException.cs
- DetailsViewCommandEventArgs.cs
- PointUtil.cs
- VideoDrawing.cs
- FlowDocumentView.cs
- HostVisual.cs
- StorageRoot.cs
- PrintingPermissionAttribute.cs
- CodeArrayIndexerExpression.cs
- CurrentChangingEventManager.cs
- TextServicesDisplayAttributePropertyRanges.cs
- GridViewDesigner.cs
- DiscoveryClientOutputChannel.cs
- ArgumentOutOfRangeException.cs
- AsymmetricAlgorithm.cs
- ManageRequest.cs
- DataControlButton.cs
- DataGridViewAccessibleObject.cs
- EventDrivenDesigner.cs
- NavigationFailedEventArgs.cs
- EdmToObjectNamespaceMap.cs
- RestClientProxyHandler.cs
- PropertyFilterAttribute.cs
- RegexCode.cs
- SettingsPropertyWrongTypeException.cs
- MatrixTransform3D.cs
- ErrorRuntimeConfig.cs
- BehaviorEditorPart.cs
- JpegBitmapDecoder.cs
- Processor.cs
- ImmComposition.cs
- AttributeProviderAttribute.cs
- ParallelTimeline.cs
- AlternateViewCollection.cs
- RowsCopiedEventArgs.cs
- COSERVERINFO.cs
- FlowPosition.cs
- DomainUpDown.cs
- SqlUtil.cs
- ReferencedAssembly.cs
- WpfKnownMember.cs
- ConnectionStringSettings.cs
- DbProviderSpecificTypePropertyAttribute.cs
- SystemDropShadowChrome.cs
- XamlPointCollectionSerializer.cs
- SqlProviderUtilities.cs
- AssociativeAggregationOperator.cs
- MenuItemBinding.cs
- TypeGenericEnumerableViewSchema.cs
- RightsManagementEncryptionTransform.cs
- Rijndael.cs
- ThrowHelper.cs
- TypeConverterHelper.cs
- ErrorFormatter.cs
- SqlGatherProducedAliases.cs
- SelectedGridItemChangedEvent.cs
- StreamReader.cs
- Int32AnimationBase.cs