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
- Int64AnimationUsingKeyFrames.cs
- Input.cs
- FragmentQueryProcessor.cs
- PreProcessInputEventArgs.cs
- Underline.cs
- LinearGradientBrush.cs
- ThreadStartException.cs
- ZipIOCentralDirectoryFileHeader.cs
- UiaCoreTypesApi.cs
- InvalidFilterCriteriaException.cs
- DescendentsWalker.cs
- DbModificationCommandTree.cs
- Int16AnimationUsingKeyFrames.cs
- CfgParser.cs
- ButtonBaseAdapter.cs
- WebConfigurationFileMap.cs
- ElementsClipboardData.cs
- ScriptModule.cs
- HtmlInputCheckBox.cs
- AdornedElementPlaceholder.cs
- IChannel.cs
- PropertyGridCommands.cs
- HttpClientCertificate.cs
- SpecularMaterial.cs
- RelatedView.cs
- DataKey.cs
- WebPartConnectionsCloseVerb.cs
- WebPartDesigner.cs
- SafeUserTokenHandle.cs
- ProjectionPruner.cs
- EntityDataSource.cs
- ColumnResizeUndoUnit.cs
- codemethodreferenceexpression.cs
- DataBindEngine.cs
- DefaultBindingPropertyAttribute.cs
- HtmlInputCheckBox.cs
- OracleRowUpdatedEventArgs.cs
- XmlDownloadManager.cs
- StrongName.cs
- NamespaceDecl.cs
- DataListItem.cs
- RegexRunner.cs
- XmlSerializer.cs
- _HeaderInfoTable.cs
- UriScheme.cs
- ConstraintManager.cs
- ParserOptions.cs
- ValidationSettings.cs
- EventManager.cs
- AbandonedMutexException.cs
- EditingMode.cs
- SwitchAttribute.cs
- SafeRightsManagementPubHandle.cs
- Module.cs
- Operators.cs
- HostedImpersonationContext.cs
- TrackingLocation.cs
- _ProxyChain.cs
- EntityDataSourceWrapper.cs
- DataGridViewCellPaintingEventArgs.cs
- XmlAttributeProperties.cs
- PackagePartCollection.cs
- TextEditorThreadLocalStore.cs
- ListCollectionView.cs
- QilNode.cs
- SapiAttributeParser.cs
- WindowPattern.cs
- WebEventTraceProvider.cs
- GridViewRowPresenter.cs
- UnsafeNativeMethods.cs
- XPathItem.cs
- ExtractorMetadata.cs
- SiteMapNodeItem.cs
- Attributes.cs
- TableLayoutColumnStyleCollection.cs
- HScrollBar.cs
- XmlDataImplementation.cs
- ViewManager.cs
- ListItemParagraph.cs
- AppSettingsReader.cs
- DataListItemCollection.cs
- FacetEnabledSchemaElement.cs
- XPathNodeIterator.cs
- ScopelessEnumAttribute.cs
- SymbolDocumentGenerator.cs
- HttpServerVarsCollection.cs
- AssemblyAttributesGoHere.cs
- ProfileInfo.cs
- SByteStorage.cs
- SessionKeyExpiredException.cs
- ReliabilityContractAttribute.cs
- _ChunkParse.cs
- AsyncStreamReader.cs
- LineServices.cs
- TablePattern.cs
- SecurityUtils.cs
- PrivateFontCollection.cs
- NonSerializedAttribute.cs
- XmlWhitespace.cs
- ByteStream.cs