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
- GroupItem.cs
- EntityType.cs
- FileDialog_Vista.cs
- Privilege.cs
- PageParser.cs
- SafeTimerHandle.cs
- XmlSerializerSection.cs
- CurrencyWrapper.cs
- SizeIndependentAnimationStorage.cs
- Visitor.cs
- IOException.cs
- Rotation3D.cs
- FixedSOMSemanticBox.cs
- ConfigurationLocationCollection.cs
- ResourceManagerWrapper.cs
- GlyphRun.cs
- CharacterMetricsDictionary.cs
- DefaultMergeHelper.cs
- HtmlEncodedRawTextWriter.cs
- FontCacheUtil.cs
- EdmFunction.cs
- SystemPens.cs
- TextHintingModeValidation.cs
- GroupStyle.cs
- OAVariantLib.cs
- DoubleAnimationUsingPath.cs
- Menu.cs
- FuncCompletionCallbackWrapper.cs
- TextSearch.cs
- AlphabeticalEnumConverter.cs
- DnsElement.cs
- _Connection.cs
- IntermediatePolicyValidator.cs
- Button.cs
- HashCodeCombiner.cs
- DocumentsTrace.cs
- XmlToDatasetMap.cs
- MobileCategoryAttribute.cs
- ObjectDataSourceFilteringEventArgs.cs
- StretchValidation.cs
- DoWorkEventArgs.cs
- COM2TypeInfoProcessor.cs
- DeflateStream.cs
- Metafile.cs
- CodeIdentifiers.cs
- ObjectKeyFrameCollection.cs
- Quaternion.cs
- _NtlmClient.cs
- GroupQuery.cs
- UnhandledExceptionEventArgs.cs
- PingOptions.cs
- CompiledQueryCacheEntry.cs
- SymmetricKeyWrap.cs
- ColorAnimationUsingKeyFrames.cs
- SerializerDescriptor.cs
- FileDataSourceCache.cs
- TableLayoutPanelCellPosition.cs
- SafeLocalAllocation.cs
- PlanCompiler.cs
- GridViewCommandEventArgs.cs
- OdbcReferenceCollection.cs
- SplitterPanel.cs
- WindowsServiceElement.cs
- TextReader.cs
- StatusBarItemAutomationPeer.cs
- UTF8Encoding.cs
- BrushValueSerializer.cs
- SamlEvidence.cs
- objectquery_tresulttype.cs
- SecurityCriticalDataForSet.cs
- Baml6ConstructorInfo.cs
- DataStreams.cs
- WebUtil.cs
- SqlUserDefinedAggregateAttribute.cs
- CodeTypeDeclaration.cs
- DataIdProcessor.cs
- UserPersonalizationStateInfo.cs
- PropertySet.cs
- DataService.cs
- Expander.cs
- DefaultExpression.cs
- IsolatedStoragePermission.cs
- ConstrainedGroup.cs
- GZipStream.cs
- ParagraphVisual.cs
- RequestDescription.cs
- ConditionedDesigner.cs
- EntityDataSourceWrapperCollection.cs
- AssertFilter.cs
- LogRecordSequence.cs
- MouseCaptureWithinProperty.cs
- AnnotationResourceChangedEventArgs.cs
- ServiceAppDomainAssociationProvider.cs
- HtmlShim.cs
- TCPListener.cs
- KeyGestureConverter.cs
- Executor.cs
- RichTextBox.cs
- IsolatedStoragePermission.cs
- ImageListImageEditor.cs