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
- SplitterDesigner.cs
- Renderer.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- FileRecordSequenceHelper.cs
- RelationshipConverter.cs
- CompoundFileIOPermission.cs
- EmptyEnumerator.cs
- StringSorter.cs
- KnownTypes.cs
- RegularExpressionValidator.cs
- DataGridCommandEventArgs.cs
- GroupItemAutomationPeer.cs
- XmlSchemaObject.cs
- MenuCommands.cs
- XslAstAnalyzer.cs
- WindowsListViewItemStartMenu.cs
- WebPartDescription.cs
- WorkflowViewService.cs
- QueryOperationResponseOfT.cs
- ping.cs
- UriWriter.cs
- KeyboardNavigation.cs
- ToolStripItemCollection.cs
- WeakReferenceList.cs
- CellConstant.cs
- ShaderRenderModeValidation.cs
- ImageIndexEditor.cs
- EntityDataSourceChangingEventArgs.cs
- ActivityDesignerResources.cs
- Int32Rect.cs
- GridViewEditEventArgs.cs
- X509SecurityTokenAuthenticator.cs
- XmlUtilWriter.cs
- NetTcpBinding.cs
- IpcManager.cs
- ProxyWebPartConnectionCollection.cs
- SByteStorage.cs
- BufferModeSettings.cs
- CodeFieldReferenceExpression.cs
- LongTypeConverter.cs
- ScriptingAuthenticationServiceSection.cs
- OleDbInfoMessageEvent.cs
- ListControl.cs
- GradientStop.cs
- NativeMethods.cs
- AnnotationHighlightLayer.cs
- ProcessRequestArgs.cs
- ToolTip.cs
- ChtmlImageAdapter.cs
- HttpConfigurationContext.cs
- ProfileBuildProvider.cs
- HyperLinkField.cs
- ChildTable.cs
- AppDomain.cs
- OperandQuery.cs
- ISessionStateStore.cs
- TypeResolver.cs
- DependencyObjectValidator.cs
- ManagementInstaller.cs
- CharEntityEncoderFallback.cs
- Utils.cs
- SslSecurityTokenParameters.cs
- ellipse.cs
- TcpClientCredentialType.cs
- CompositeCollectionView.cs
- _DomainName.cs
- wgx_exports.cs
- DesignerTextViewAdapter.cs
- IfAction.cs
- WebPartEventArgs.cs
- QueryRewriter.cs
- DataGridViewIntLinkedList.cs
- invalidudtexception.cs
- counter.cs
- RealizationContext.cs
- Window.cs
- WebPartUserCapability.cs
- GlobalEventManager.cs
- DecoderBestFitFallback.cs
- SessionParameter.cs
- Helpers.cs
- SerializationAttributes.cs
- CookieProtection.cs
- DesignerView.xaml.cs
- SemanticResolver.cs
- OdbcFactory.cs
- ServiceOperationDetailViewControl.cs
- PrintPageEvent.cs
- TypeCollectionDesigner.xaml.cs
- DataSourceHelper.cs
- QilList.cs
- StylusPointPropertyId.cs
- SchemaSetCompiler.cs
- ISFClipboardData.cs
- Adorner.cs
- BlurBitmapEffect.cs
- LoadMessageLogger.cs
- XmlSchemaException.cs
- NotifyIcon.cs
- PathTooLongException.cs