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
- Stylus.cs
- FileLogRecord.cs
- DesignerDataView.cs
- CatalogPartChrome.cs
- HashSetDebugView.cs
- Menu.cs
- CodeSubDirectoriesCollection.cs
- HtmlInputHidden.cs
- WindowsRegion.cs
- DataGridParentRows.cs
- Point4DConverter.cs
- SqlDataSourceConfigureFilterForm.cs
- UnsafeNativeMethods.cs
- ObjectCacheSettings.cs
- PlatformNotSupportedException.cs
- Compiler.cs
- LogFlushAsyncResult.cs
- EventPrivateKey.cs
- DataSvcMapFile.cs
- DataChangedEventManager.cs
- RoutedCommand.cs
- DesignerHierarchicalDataSourceView.cs
- Substitution.cs
- EventProviderTraceListener.cs
- HtmlEmptyTagControlBuilder.cs
- XamlPoint3DCollectionSerializer.cs
- BamlMapTable.cs
- Rotation3DAnimationUsingKeyFrames.cs
- StringStorage.cs
- FileDialog_Vista_Interop.cs
- WindowsRegion.cs
- StyleBamlTreeBuilder.cs
- Stack.cs
- DataPagerFieldCommandEventArgs.cs
- ClientUtils.cs
- ObjectDataSourceSelectingEventArgs.cs
- DiagnosticEventProvider.cs
- Model3D.cs
- Socket.cs
- TableProviderWrapper.cs
- ManagedIStream.cs
- BinHexDecoder.cs
- ImageSource.cs
- ListSourceHelper.cs
- RemoveStoryboard.cs
- PartialList.cs
- RadioButton.cs
- Quack.cs
- XsdDuration.cs
- DesignRelationCollection.cs
- TrustLevelCollection.cs
- TextBoxAutomationPeer.cs
- SortableBindingList.cs
- ScrollChrome.cs
- webproxy.cs
- RegionInfo.cs
- StreamHelper.cs
- CodeConstructor.cs
- PropertyMetadata.cs
- GraphicsContainer.cs
- ArrayExtension.cs
- HttpListenerRequest.cs
- CollectionTypeElement.cs
- DtdParser.cs
- ListBoxChrome.cs
- DelegatingTypeDescriptionProvider.cs
- FileDialogCustomPlaces.cs
- columnmapfactory.cs
- AppDomainAttributes.cs
- SqlSupersetValidator.cs
- Asn1IntegerConverter.cs
- ObjectViewQueryResultData.cs
- XmlSerializationGeneratedCode.cs
- ClipboardData.cs
- DependentList.cs
- XmlReflectionImporter.cs
- GridItemCollection.cs
- ConnectionConsumerAttribute.cs
- SafeEventLogWriteHandle.cs
- HideDisabledControlAdapter.cs
- CodeAttributeArgument.cs
- InputProcessorProfilesLoader.cs
- VectorAnimationBase.cs
- SpecularMaterial.cs
- FormsAuthenticationUser.cs
- StatusBarItemAutomationPeer.cs
- login.cs
- Selector.cs
- WSSecureConversationDec2005.cs
- WebControlToolBoxItem.cs
- ToolStripRendererSwitcher.cs
- ListViewContainer.cs
- FormViewCommandEventArgs.cs
- ContentElement.cs
- SocketSettings.cs
- EUCJPEncoding.cs
- CodeAccessPermission.cs
- ImageMapEventArgs.cs
- TransformDescriptor.cs
- _ScatterGatherBuffers.cs