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
- SessionParameter.cs
- PeerPresenceInfo.cs
- OletxCommittableTransaction.cs
- DataControlLinkButton.cs
- GridSplitterAutomationPeer.cs
- SuspendDesigner.cs
- UnSafeCharBuffer.cs
- ObjectListFieldsPage.cs
- StringAttributeCollection.cs
- WorkflowInstanceContextProvider.cs
- util.cs
- PropertyMetadata.cs
- LocalizationComments.cs
- ClientTargetCollection.cs
- HtmlToClrEventProxy.cs
- DocumentViewerBase.cs
- UidPropertyAttribute.cs
- LayoutEditorPart.cs
- AssemblyAttributesGoHere.cs
- MetadataCollection.cs
- xdrvalidator.cs
- EventLogSession.cs
- SQLMoney.cs
- Route.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- MetadataHelper.cs
- StyleCollection.cs
- XmlSerializableServices.cs
- Nullable.cs
- TCPClient.cs
- TraceListener.cs
- BinaryFormatterWriter.cs
- SafeLibraryHandle.cs
- NamespaceCollection.cs
- BeginEvent.cs
- ClusterRegistryConfigurationProvider.cs
- PropertyToken.cs
- BinaryUtilClasses.cs
- Merger.cs
- Label.cs
- UnsafeNativeMethods.cs
- DataBindingList.cs
- DataGridItemCollection.cs
- ClientSettingsProvider.cs
- SyndicationFeed.cs
- RectangleGeometry.cs
- SectionInput.cs
- MergePropertyDescriptor.cs
- SHA256CryptoServiceProvider.cs
- FrameAutomationPeer.cs
- Span.cs
- IntSumAggregationOperator.cs
- FlowDocumentFormatter.cs
- TemplateManager.cs
- CustomValidator.cs
- StreamUpdate.cs
- IntSecurity.cs
- FileDialog_Vista_Interop.cs
- _SslStream.cs
- MutableAssemblyCacheEntry.cs
- ButtonStandardAdapter.cs
- SymDocumentType.cs
- RegexWriter.cs
- NumberSubstitution.cs
- CodeTypeReference.cs
- httpstaticobjectscollection.cs
- X509ChainElement.cs
- BrushMappingModeValidation.cs
- _FtpDataStream.cs
- SerializationAttributes.cs
- PropertyChangedEventArgs.cs
- OdbcCommand.cs
- CultureMapper.cs
- MetadataItemEmitter.cs
- DiagnosticsElement.cs
- SpStreamWrapper.cs
- HostSecurityManager.cs
- safex509handles.cs
- ISAPIApplicationHost.cs
- DSACryptoServiceProvider.cs
- TerminatorSinks.cs
- ScrollItemProviderWrapper.cs
- ResourceReferenceExpression.cs
- ProcessThread.cs
- SqlUtil.cs
- AssemblyBuilderData.cs
- ResourceDescriptionAttribute.cs
- ByteAnimation.cs
- SrgsGrammar.cs
- PointCollection.cs
- Stroke.cs
- TimeoutTimer.cs
- IgnoreDeviceFilterElementCollection.cs
- GroupStyle.cs
- Focus.cs
- XmlDictionaryReaderQuotas.cs
- DataPager.cs
- UndoManager.cs
- XmlWellformedWriterHelpers.cs
- FlowDocumentPageViewerAutomationPeer.cs