Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / PeerCustomResolverBindingElement.cs / 1 / PeerCustomResolverBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.ComponentModel; using System.ServiceModel; using System.ServiceModel.Configuration; using System.ServiceModel.Description; using System.ServiceModel.Dispatcher; using System.ServiceModel.PeerResolvers; public sealed class PeerCustomResolverBindingElement : PeerResolverBindingElement { EndpointAddress address; Binding binding; string bindingSection, bindingConfiguration; //this should be PeerCustomResolver? PeerResolver resolver; ClientCredentials credentials; PeerReferralPolicy referralPolicy; public PeerCustomResolverBindingElement() { } public PeerCustomResolverBindingElement(PeerCustomResolverBindingElement other) : base(other) { this.address = other.address; this.bindingConfiguration= other.bindingConfiguration; this.bindingSection = other.bindingSection; this.binding = other.binding; this.resolver = other.resolver; this.credentials = other.credentials; } public PeerCustomResolverBindingElement(PeerCustomResolverSettings settings) { if(settings != null) { this.address = settings.Address; this.binding = settings.Binding; this.resolver = settings.Resolver; this.bindingConfiguration = settings.BindingConfiguration; this.bindingSection = settings.BindingSection; } } public PeerCustomResolverBindingElement(BindingContext context, PeerCustomResolverSettings settings):this(settings) { if (context == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context")); #pragma warning suppress 56506 // credentials = context.BindingParameters.Find(); } public override T GetProperty (System.ServiceModel.Channels.BindingContext context) { #pragma warning suppress 56506 // return context.GetInnerProperty (); } public EndpointAddress Address { get { return address; } set { address = value; } } public Binding Binding { get { return binding; } set { binding = value; } } public override PeerReferralPolicy ReferralPolicy { get { return referralPolicy; } set { if(!PeerReferralPolicyHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidEnumArgumentException("value", (int)value, typeof(PeerReferralPolicy))); } referralPolicy = value; } } public override BindingElement Clone() { return new PeerCustomResolverBindingElement(this); } public override IChannelFactory BuildChannelFactory (BindingContext context) { if (context == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context")); #pragma warning suppress 56506 // context.BindingParameters.Add(this); credentials = context.BindingParameters.Find (); return context.BuildInnerChannelFactory (); } public override bool CanBuildChannelFactory (BindingContext context) { if (context == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context")); #pragma warning suppress 56506 // this.credentials = context.BindingParameters.Find (); context.BindingParameters.Add(this); return context.CanBuildInnerChannelFactory (); } public override IChannelListener BuildChannelListener (BindingContext context) { if (context == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context")); #pragma warning suppress 56506 // context.BindingParameters.Add(this); this.credentials = context.BindingParameters.Find (); return context.BuildInnerChannelListener (); } public override bool CanBuildChannelListener (BindingContext context) { if (context == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("context")); #pragma warning suppress 56506 // this.credentials = context.BindingParameters.Find (); context.BindingParameters.Add(this); return context.CanBuildInnerChannelListener (); } public override PeerResolver CreatePeerResolver() { if(resolver == null) { if(address == null || ((binding == null) && (String.IsNullOrEmpty(this.bindingSection) || String.IsNullOrEmpty(this.bindingConfiguration)))) PeerExceptionHelper.ThrowArgument_InsufficientResolverSettings(); if (binding == null) { this.binding = ConfigLoader.LookupBinding(this.bindingSection, this.bindingConfiguration); if (binding == null) PeerExceptionHelper.ThrowArgument_InsufficientResolverSettings(); } resolver = new PeerDefaultCustomResolverClient(); } if (resolver != null) { resolver.Initialize(address, binding, credentials, this.referralPolicy); if (resolver is PeerDefaultCustomResolverClient) { (resolver as PeerDefaultCustomResolverClient).BindingName = this.bindingSection; (resolver as PeerDefaultCustomResolverClient).BindingConfigurationName = this.bindingConfiguration; } } return resolver; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Evidence.cs
- XmlNode.cs
- ConfigXmlText.cs
- EnumerableValidator.cs
- TypedColumnHandler.cs
- Geometry.cs
- DataGridViewComboBoxEditingControl.cs
- TextTreeRootTextBlock.cs
- ProcessHostConfigUtils.cs
- SettingsSavedEventArgs.cs
- BlurEffect.cs
- WebPageTraceListener.cs
- SchemaCompiler.cs
- EpmCustomContentWriterNodeData.cs
- EventRecord.cs
- Nullable.cs
- RegistryKey.cs
- ContentPresenter.cs
- FrameworkContentElement.cs
- ErasingStroke.cs
- Screen.cs
- EntityCodeGenerator.cs
- FunctionCommandText.cs
- NameValuePair.cs
- ContentPlaceHolder.cs
- CurrentTimeZone.cs
- WebPartsPersonalization.cs
- ToolStripSplitButton.cs
- DbParameterHelper.cs
- ToolStripEditorManager.cs
- SizeAnimation.cs
- SectionVisual.cs
- GeneralTransform3DGroup.cs
- HwndMouseInputProvider.cs
- SspiNegotiationTokenProvider.cs
- PageSettings.cs
- DirectoryNotFoundException.cs
- FormClosingEvent.cs
- WeakReference.cs
- EventLogEntryCollection.cs
- Util.cs
- SiteMap.cs
- WeakKeyDictionary.cs
- ClientSettingsProvider.cs
- ConcurrentBag.cs
- TimeSpanConverter.cs
- XsdSchemaFileEditor.cs
- FileRegion.cs
- SqlParameter.cs
- TransformDescriptor.cs
- MenuItemStyleCollection.cs
- CustomError.cs
- ClientSettingsProvider.cs
- SafeCryptContextHandle.cs
- EventSinkActivityDesigner.cs
- _HTTPDateParse.cs
- ThreadExceptionEvent.cs
- SingleTagSectionHandler.cs
- ToolboxDataAttribute.cs
- Vector3D.cs
- ListView.cs
- TypefaceMap.cs
- WebPartDesigner.cs
- OdbcHandle.cs
- WindowsFont.cs
- X509ChainPolicy.cs
- KnownBoxes.cs
- SafeLibraryHandle.cs
- InstallerTypeAttribute.cs
- SystemResourceKey.cs
- XmlDigitalSignatureProcessor.cs
- AlignmentYValidation.cs
- ColumnReorderedEventArgs.cs
- XmlMembersMapping.cs
- TimelineGroup.cs
- ProfilePropertySettings.cs
- PublisherIdentityPermission.cs
- ReadOnlyCollection.cs
- HttpListener.cs
- MarkupWriter.cs
- TraceSection.cs
- Decoder.cs
- FigureParaClient.cs
- TextContainerChangeEventArgs.cs
- AutoCompleteStringCollection.cs
- LinqDataSourceDisposeEventArgs.cs
- KeyboardDevice.cs
- CryptoProvider.cs
- AbandonedMutexException.cs
- SecurityException.cs
- Zone.cs
- AtlasWeb.Designer.cs
- GridView.cs
- SQLMoney.cs
- XmlnsDictionary.cs
- CodeAssignStatement.cs
- httpstaticobjectscollection.cs
- Function.cs
- ToolStripDropDownClosedEventArgs.cs
- WrappedReader.cs