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
- LayoutUtils.cs
- RegionData.cs
- QuadraticBezierSegment.cs
- Attributes.cs
- DebugInfoExpression.cs
- SqlDataSourceDesigner.cs
- OdbcFactory.cs
- Hyperlink.cs
- Camera.cs
- GraphicsState.cs
- SettingsAttributeDictionary.cs
- SingleSelectRootGridEntry.cs
- Accessors.cs
- HtmlHead.cs
- WorkflowCompensationBehavior.cs
- TrackingExtract.cs
- HtmlHead.cs
- XmlArrayAttribute.cs
- Debug.cs
- WindowsToolbar.cs
- ListViewItem.cs
- ObjectHandle.cs
- EntitySqlQueryState.cs
- XmlCompatibilityReader.cs
- ScrollViewerAutomationPeer.cs
- SymDocumentType.cs
- JsonFormatReaderGenerator.cs
- ConfigurationElementCollection.cs
- SqlBinder.cs
- ObjectListCommandCollection.cs
- RemoveStoryboard.cs
- PinnedBufferMemoryStream.cs
- HighlightOverlayGlyph.cs
- Filter.cs
- ScriptControl.cs
- InvalidMessageContractException.cs
- BackgroundWorker.cs
- HebrewNumber.cs
- XXXInfos.cs
- LogReservationCollection.cs
- BufferedResponseStream.cs
- DateTimeFormatInfo.cs
- SiteMapSection.cs
- SmiEventStream.cs
- TrackBarRenderer.cs
- CodeCompiler.cs
- UIElementParagraph.cs
- DnsPermission.cs
- RectIndependentAnimationStorage.cs
- StringPropertyBuilder.cs
- ConfigXmlReader.cs
- AddInPipelineAttributes.cs
- WebServiceMethodData.cs
- BaseDataBoundControl.cs
- FunctionCommandText.cs
- DrawingBrush.cs
- TransformGroup.cs
- TargetInvocationException.cs
- TextModifier.cs
- PersistenceProvider.cs
- RepeaterDesigner.cs
- ProfilePropertyNameValidator.cs
- Signature.cs
- DataGridrowEditEndingEventArgs.cs
- ContentType.cs
- UIPermission.cs
- TrackingMemoryStreamFactory.cs
- UrlAuthorizationModule.cs
- EncodingStreamWrapper.cs
- BindStream.cs
- FixUpCollection.cs
- SmiGettersStream.cs
- ConfigurationManagerHelperFactory.cs
- CssTextWriter.cs
- RowUpdatingEventArgs.cs
- CalendarDay.cs
- ConfigurationElementCollection.cs
- SqlNamer.cs
- PixelFormat.cs
- TreeViewImageGenerator.cs
- RegisteredExpandoAttribute.cs
- ProvidePropertyAttribute.cs
- LoginAutoFormat.cs
- SmtpReplyReaderFactory.cs
- TableItemStyle.cs
- DataGridViewCellStyle.cs
- PointLightBase.cs
- SrgsElementList.cs
- Solver.cs
- PreviewControlDesigner.cs
- StoryFragments.cs
- XamlDebuggerXmlReader.cs
- RouteItem.cs
- WindowHelperService.cs
- LogStore.cs
- DeviceSpecificDialogCachedState.cs
- EventLogPermissionEntry.cs
- TextTreeInsertUndoUnit.cs
- StreamReader.cs
- FixedElement.cs