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
- MailMessage.cs
- EventWaitHandle.cs
- MemberAssignmentAnalysis.cs
- BitmapEncoder.cs
- ProviderMetadata.cs
- XmlDictionaryWriter.cs
- MaterialGroup.cs
- cryptoapiTransform.cs
- PropertySegmentSerializationProvider.cs
- IndicFontClient.cs
- EmbeddedObject.cs
- NCryptNative.cs
- SurrogateChar.cs
- PositiveTimeSpanValidator.cs
- GeneralTransformGroup.cs
- DictionaryTraceRecord.cs
- Cloud.cs
- WsdlWriter.cs
- SystemBrushes.cs
- TextParentUndoUnit.cs
- PasswordBox.cs
- DirtyTextRange.cs
- LocalizationParserHooks.cs
- RawTextInputReport.cs
- RealProxy.cs
- PropertyGridCommands.cs
- KnownColorTable.cs
- BuildProvider.cs
- QueryStringHandler.cs
- StreamingContext.cs
- SelectionRange.cs
- unsafeIndexingFilterStream.cs
- IndicFontClient.cs
- GeneratedCodeAttribute.cs
- PropertyEmitter.cs
- NonSerializedAttribute.cs
- Error.cs
- RemoteArgument.cs
- JsonDeserializer.cs
- TextEditorParagraphs.cs
- ProfileService.cs
- LocatorGroup.cs
- XPathArrayIterator.cs
- EdgeModeValidation.cs
- DataListDesigner.cs
- DeviceSpecificDesigner.cs
- CustomAttribute.cs
- XmlSchemaObject.cs
- EntitySqlQueryBuilder.cs
- DoubleUtil.cs
- ContextProperty.cs
- RSAPKCS1SignatureDeformatter.cs
- LineUtil.cs
- GridViewPageEventArgs.cs
- Logging.cs
- BaseTemplateBuildProvider.cs
- Point3DAnimationUsingKeyFrames.cs
- EngineSite.cs
- Context.cs
- WmlImageAdapter.cs
- KnownAssembliesSet.cs
- Table.cs
- GroupBoxRenderer.cs
- SiteMapProvider.cs
- MaterialCollection.cs
- RenderOptions.cs
- BindingCompleteEventArgs.cs
- SafeNativeMethods.cs
- SoapAttributes.cs
- SafeRightsManagementSessionHandle.cs
- ContextStaticAttribute.cs
- OdbcFactory.cs
- StringDictionaryEditor.cs
- MemberCollection.cs
- DSACryptoServiceProvider.cs
- DictionaryManager.cs
- MarshalByRefObject.cs
- DataGridViewCell.cs
- SiteMapPath.cs
- ADConnectionHelper.cs
- SyndicationSerializer.cs
- ExpressionTextBox.xaml.cs
- Match.cs
- SiteIdentityPermission.cs
- CommandEventArgs.cs
- OleDbPermission.cs
- SqlExpander.cs
- HtmlElementCollection.cs
- EntityProxyTypeInfo.cs
- CodeIterationStatement.cs
- StringToken.cs
- PathSegmentCollection.cs
- CalendarButton.cs
- Effect.cs
- HostingEnvironmentWrapper.cs
- SchemaManager.cs
- DCSafeHandle.cs
- ControlCollection.cs
- MemoryRecordBuffer.cs
- _ReceiveMessageOverlappedAsyncResult.cs