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
- Constant.cs
- PropertyNames.cs
- WSSecurityJan2004.cs
- FormsAuthenticationUser.cs
- Separator.cs
- DataService.cs
- ToolStripMenuItemCodeDomSerializer.cs
- PersonalizationAdministration.cs
- AsymmetricKeyExchangeDeformatter.cs
- EventlogProvider.cs
- DataGridViewCellLinkedList.cs
- QuerySubExprEliminator.cs
- CaretElement.cs
- ConnectionPoolRegistry.cs
- Profiler.cs
- HitTestParameters.cs
- XsltContext.cs
- RowToParametersTransformer.cs
- SiteOfOriginPart.cs
- XmlQueryOutput.cs
- OdbcConnectionStringbuilder.cs
- GiveFeedbackEvent.cs
- WebPartVerbCollection.cs
- AssemblyNameProxy.cs
- ProviderException.cs
- ListInitExpression.cs
- TableRowCollection.cs
- FormView.cs
- _FixedSizeReader.cs
- TextBoxRenderer.cs
- InternalTransaction.cs
- RuntimeConfig.cs
- ServicePoint.cs
- ImageMap.cs
- TreeViewBindingsEditor.cs
- EventHandlersStore.cs
- AnnotationMap.cs
- TypedDatasetGenerator.cs
- SiblingIterators.cs
- XhtmlConformanceSection.cs
- Int16AnimationUsingKeyFrames.cs
- AutoGeneratedField.cs
- CacheVirtualItemsEvent.cs
- Tracer.cs
- RepeatButtonAutomationPeer.cs
- SpotLight.cs
- StyleXamlParser.cs
- DataControlImageButton.cs
- TextParaClient.cs
- CqlBlock.cs
- TemplateAction.cs
- ToolStripDropDown.cs
- GeometryDrawing.cs
- HttpSessionStateBase.cs
- XmlnsDictionary.cs
- TextSelection.cs
- ProfessionalColorTable.cs
- BatchServiceHost.cs
- BitmapFrameDecode.cs
- RuleDefinitions.cs
- BitmapImage.cs
- OverrideMode.cs
- MessageQueue.cs
- ConfigurationException.cs
- GenericXmlSecurityTokenAuthenticator.cs
- DataBinding.cs
- RemotingServices.cs
- Font.cs
- CertificateManager.cs
- MemberPathMap.cs
- SplitterEvent.cs
- DataGridViewComboBoxColumn.cs
- ApplyTemplatesAction.cs
- XmlSchemaProviderAttribute.cs
- RankException.cs
- EtwTrackingBehavior.cs
- StrokeCollection2.cs
- IndentTextWriter.cs
- HttpListenerRequestTraceRecord.cs
- FlowLayoutSettings.cs
- Update.cs
- NativeMethodsCLR.cs
- BufferedReadStream.cs
- CodeExpressionStatement.cs
- SessionStateUtil.cs
- Privilege.cs
- LocationSectionRecord.cs
- EntityTypeEmitter.cs
- TdsParserHelperClasses.cs
- GenericUI.cs
- DictionaryTraceRecord.cs
- InkCanvasSelection.cs
- FragmentQuery.cs
- EntitySqlException.cs
- StaticSiteMapProvider.cs
- XamlNamespaceHelper.cs
- PerformanceCountersElement.cs
- StorageRoot.cs
- SelectionItemPattern.cs
- TextPointerBase.cs