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
- OSFeature.cs
- DependencyObjectProvider.cs
- ComponentEvent.cs
- EntitySqlQueryState.cs
- NamespaceListProperty.cs
- SqlFunctionAttribute.cs
- ImageListUtils.cs
- StringValidatorAttribute.cs
- DefaultHttpHandler.cs
- WindowsContainer.cs
- Size3DValueSerializer.cs
- ParameterCollection.cs
- RestHandler.cs
- SystemNetworkInterface.cs
- EncodingStreamWrapper.cs
- FontUnit.cs
- Debug.cs
- ConfigurationSectionGroupCollection.cs
- SemanticAnalyzer.cs
- XmlValidatingReader.cs
- XmlCharCheckingWriter.cs
- XmlWriterTraceListener.cs
- Rect3D.cs
- OleDragDropHandler.cs
- XmlSchemaAnnotation.cs
- CompilerInfo.cs
- Decimal.cs
- ExpressionWriter.cs
- TdsParameterSetter.cs
- SerializationSectionGroup.cs
- HScrollBar.cs
- XmlUrlResolver.cs
- StringFreezingAttribute.cs
- ObjectMaterializedEventArgs.cs
- FileClassifier.cs
- DBCommand.cs
- CreateDataSourceDialog.cs
- Paragraph.cs
- Axis.cs
- XmlUnspecifiedAttribute.cs
- Vector3DConverter.cs
- WindowsGraphicsCacheManager.cs
- PhysicalFontFamily.cs
- PermissionListSet.cs
- XmlSequenceWriter.cs
- WpfGeneratedKnownProperties.cs
- ProfilePropertySettingsCollection.cs
- SiteMapNode.cs
- X509UI.cs
- BitmapCodecInfoInternal.cs
- JsonWriter.cs
- BinaryCommonClasses.cs
- NCryptSafeHandles.cs
- SchemaNotation.cs
- ShaperBuffers.cs
- TypeSystemHelpers.cs
- DataGridViewColumn.cs
- Keyboard.cs
- ExpressionEditorAttribute.cs
- FormsIdentity.cs
- DocumentPage.cs
- WindowsHyperlink.cs
- MediaElement.cs
- ELinqQueryState.cs
- OracleConnection.cs
- BitStream.cs
- MexHttpBindingCollectionElement.cs
- WmlCommandAdapter.cs
- Executor.cs
- RegisteredScript.cs
- FunctionNode.cs
- TreeNodeCollectionEditor.cs
- AnimatedTypeHelpers.cs
- FrameworkObject.cs
- UserControl.cs
- PasswordRecovery.cs
- PointHitTestResult.cs
- StreamingContext.cs
- BrowserTree.cs
- SHA1.cs
- DesignTimeHTMLTextWriter.cs
- UnicastIPAddressInformationCollection.cs
- keycontainerpermission.cs
- SqlClientPermission.cs
- MetadataHelper.cs
- TypeInfo.cs
- InputLanguageManager.cs
- MaterialCollection.cs
- ForceCopyBuildProvider.cs
- SocketAddress.cs
- DataFormat.cs
- ImmutableObjectAttribute.cs
- SafeThemeHandle.cs
- SharedPersonalizationStateInfo.cs
- LicFileLicenseProvider.cs
- XmlSchemaRedefine.cs
- TableLayout.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ResourceContainer.cs
- _SingleItemRequestCache.cs