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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QuadraticBezierSegment.cs
- TagMapCollection.cs
- ContentOperations.cs
- OperandQuery.cs
- ControlIdConverter.cs
- Border.cs
- StatusBar.cs
- Activator.cs
- MappingModelBuildProvider.cs
- MetaType.cs
- MtomMessageEncodingElement.cs
- Menu.cs
- MsmqMessageProperty.cs
- NativeMethodsCLR.cs
- Brush.cs
- FixedPageStructure.cs
- BitmapEffectDrawingContextState.cs
- GlyphRunDrawing.cs
- TextEditor.cs
- DelegatingConfigHost.cs
- XmlName.cs
- HeaderUtility.cs
- SerializationEventsCache.cs
- DataDesignUtil.cs
- CollectionAdapters.cs
- MarkupProperty.cs
- RoleServiceManager.cs
- HtmlTableCellCollection.cs
- SystemBrushes.cs
- CriticalExceptions.cs
- GrammarBuilderRuleRef.cs
- SortedDictionary.cs
- connectionpool.cs
- MethodCallConverter.cs
- SelfIssuedSamlTokenFactory.cs
- SafeBitVector32.cs
- DataControlFieldHeaderCell.cs
- AssemblyName.cs
- LogExtentCollection.cs
- SecurityState.cs
- HttpCapabilitiesSectionHandler.cs
- DesignerDataTable.cs
- TextChangedEventArgs.cs
- LingerOption.cs
- ContentIterators.cs
- RSAProtectedConfigurationProvider.cs
- DataGridTableCollection.cs
- GridViewCommandEventArgs.cs
- Table.cs
- BindingObserver.cs
- CodeSnippetCompileUnit.cs
- SqlGenerator.cs
- DataGridViewTextBoxColumn.cs
- DocumentXmlWriter.cs
- ConfigXmlSignificantWhitespace.cs
- InvariantComparer.cs
- WorkflowMessageEventHandler.cs
- RegexRunner.cs
- Convert.cs
- Image.cs
- DataSourceXmlSerializationAttribute.cs
- DataServiceHost.cs
- XmlNamespaceDeclarationsAttribute.cs
- UserControlParser.cs
- PartialCachingAttribute.cs
- HiddenFieldPageStatePersister.cs
- ComplexTypeEmitter.cs
- PointCollection.cs
- FixedSOMGroup.cs
- Utils.cs
- XmlAtomicValue.cs
- ProtocolsSection.cs
- WindowsFormsHelpers.cs
- SystemColors.cs
- ErrorLog.cs
- CircleEase.cs
- ListView.cs
- MonthChangedEventArgs.cs
- TreeViewCancelEvent.cs
- RegexGroupCollection.cs
- Transform.cs
- IxmlLineInfo.cs
- StylusButtonCollection.cs
- TypeBuilder.cs
- SafeArrayRankMismatchException.cs
- TransformProviderWrapper.cs
- BinHexEncoder.cs
- DataGridViewCellStyleConverter.cs
- LiteralControl.cs
- SystemIPGlobalProperties.cs
- RegexCaptureCollection.cs
- SpeakInfo.cs
- SystemThemeKey.cs
- ApplyTemplatesAction.cs
- CodeEventReferenceExpression.cs
- ProcessHostFactoryHelper.cs
- XmlDataSource.cs
- EpmCustomContentSerializer.cs
- CompModSwitches.cs
- DataBinding.cs