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
- CellNormalizer.cs
- StorageConditionPropertyMapping.cs
- CursorConverter.cs
- OracleDateTime.cs
- TdsParserStaticMethods.cs
- Effect.cs
- HighlightVisual.cs
- AddValidationError.cs
- ObjectTag.cs
- PrintPageEvent.cs
- COM2Properties.cs
- XamlWriter.cs
- BezierSegment.cs
- SpecialNameAttribute.cs
- CodePageEncoding.cs
- ProcessHostMapPath.cs
- TableRowCollection.cs
- DrawingAttributesDefaultValueFactory.cs
- CompilerScope.cs
- OutKeywords.cs
- QueryOptionExpression.cs
- SRGSCompiler.cs
- EntitySetBaseCollection.cs
- MetaColumn.cs
- ComponentEditorPage.cs
- SchemaAttDef.cs
- BooleanToSelectiveScrollingOrientationConverter.cs
- DataListGeneralPage.cs
- OletxResourceManager.cs
- CacheChildrenQuery.cs
- BitSet.cs
- DateTimeStorage.cs
- XmlQualifiedName.cs
- CaseStatement.cs
- SafeThemeHandle.cs
- CodeCommentStatement.cs
- HtmlControlPersistable.cs
- LocalFileSettingsProvider.cs
- FilteredAttributeCollection.cs
- XmlSortKey.cs
- AssemblyCollection.cs
- ToolStripLocationCancelEventArgs.cs
- InputScope.cs
- PathGeometry.cs
- DataSourceControl.cs
- XmlQueryType.cs
- PartialTrustHelpers.cs
- XmlDataSourceNodeDescriptor.cs
- ConfigurationPermission.cs
- DiscriminatorMap.cs
- XPathSelfQuery.cs
- PointCollectionConverter.cs
- CodeComment.cs
- GridItem.cs
- Rectangle.cs
- FunctionImportMapping.cs
- SequentialWorkflowHeaderFooter.cs
- DirectoryNotFoundException.cs
- ApplicationProxyInternal.cs
- ImageList.cs
- DecimalAnimation.cs
- Overlapped.cs
- XmlDataImplementation.cs
- SystemSounds.cs
- AssemblyCache.cs
- SqlDuplicator.cs
- NonVisualControlAttribute.cs
- HtmlWindow.cs
- ObjectReaderCompiler.cs
- FixedElement.cs
- MonthChangedEventArgs.cs
- ThreadStateException.cs
- MessageDecoder.cs
- DynamicRenderer.cs
- ObjectViewListener.cs
- RegexMatch.cs
- PropertyPushdownHelper.cs
- FlowDocumentScrollViewer.cs
- infer.cs
- RenderContext.cs
- DbSourceParameterCollection.cs
- XmlResolver.cs
- EventMetadata.cs
- HttpException.cs
- AggregateNode.cs
- ReaderWriterLock.cs
- ObjectHandle.cs
- EventManager.cs
- RuntimeWrappedException.cs
- ValidatorUtils.cs
- VersionedStream.cs
- XPathNode.cs
- EntityDataSourceWrapperCollection.cs
- EventBuilder.cs
- SourceLineInfo.cs
- AssociationSet.cs
- HeaderCollection.cs
- EntityDescriptor.cs
- MemoryMappedFile.cs
- MembershipSection.cs