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
- DockingAttribute.cs
- RtType.cs
- TimeManager.cs
- ImageCodecInfoPrivate.cs
- HtmlSelect.cs
- StringDictionary.cs
- VisualTreeHelper.cs
- DbParameterHelper.cs
- ButtonFlatAdapter.cs
- DataBinder.cs
- BitmapMetadata.cs
- StorageFunctionMapping.cs
- CompensateDesigner.cs
- XamlVector3DCollectionSerializer.cs
- SecurityElement.cs
- LicenseException.cs
- Visual.cs
- ColumnReorderedEventArgs.cs
- FileDialogCustomPlaces.cs
- IItemProperties.cs
- DbConnectionStringCommon.cs
- TemplateParser.cs
- hresults.cs
- DataGridViewComboBoxColumn.cs
- DesignerValidatorAdapter.cs
- UnescapedXmlDiagnosticData.cs
- FormViewUpdatedEventArgs.cs
- MimeAnyImporter.cs
- Attribute.cs
- HttpContextWrapper.cs
- MouseBinding.cs
- ISCIIEncoding.cs
- SQlBooleanStorage.cs
- DataGridRowsPresenter.cs
- XmlReflectionMember.cs
- DbParameterHelper.cs
- TextEffectCollection.cs
- ProbeMatchesMessageCD1.cs
- SafeArchiveContext.cs
- XPathExpr.cs
- TrackBar.cs
- ParseNumbers.cs
- DiffuseMaterial.cs
- PlaceHolder.cs
- HtmlMeta.cs
- ConfigurationValidatorAttribute.cs
- CannotUnloadAppDomainException.cs
- AnimatedTypeHelpers.cs
- DecimalConstantAttribute.cs
- FormViewUpdateEventArgs.cs
- TabControl.cs
- BulletedListDesigner.cs
- ComplexTypeEmitter.cs
- CodeExpressionCollection.cs
- ResourceLoader.cs
- XmlSchema.cs
- TabItemWrapperAutomationPeer.cs
- DesignerResources.cs
- SqlUserDefinedTypeAttribute.cs
- AmbientValueAttribute.cs
- HealthMonitoringSection.cs
- RC2.cs
- SqlHelper.cs
- XmlSchemaComplexContentRestriction.cs
- DurableInstancingOptions.cs
- CounterCreationDataCollection.cs
- NumericExpr.cs
- BuildManager.cs
- SymmetricAlgorithm.cs
- DES.cs
- StrokeIntersection.cs
- CompressedStack.cs
- CharEnumerator.cs
- FormsAuthentication.cs
- RoutingUtilities.cs
- TreeNodeBinding.cs
- RoutedEventHandlerInfo.cs
- ObsoleteAttribute.cs
- DtdParser.cs
- OleDbCommand.cs
- NativeActivityFaultContext.cs
- PixelShader.cs
- CompareValidator.cs
- XmlEncoding.cs
- PropertyInformation.cs
- ReadOnlyDataSource.cs
- DataGridViewSortCompareEventArgs.cs
- ListItem.cs
- SubMenuStyleCollection.cs
- RelOps.cs
- NativeMethods.cs
- MaskInputRejectedEventArgs.cs
- BufferBuilder.cs
- DataGridViewRowCancelEventArgs.cs
- TextWriterTraceListener.cs
- SecurityResources.cs
- Message.cs
- Win32Native.cs
- MailDefinitionBodyFileNameEditor.cs
- Pen.cs