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
- RelationshipConverter.cs
- PhysicalOps.cs
- ThicknessAnimationBase.cs
- UseAttributeSetsAction.cs
- CharacterBuffer.cs
- StackOverflowException.cs
- SingleConverter.cs
- ZipIOCentralDirectoryBlock.cs
- CollectionType.cs
- TagPrefixAttribute.cs
- DefaultValidator.cs
- PeerNameRegistration.cs
- Win32MouseDevice.cs
- SHA1CryptoServiceProvider.cs
- xdrvalidator.cs
- DataSourceXmlSubItemAttribute.cs
- RegisteredHiddenField.cs
- XmlSchemaImport.cs
- GridLength.cs
- AutomationElementCollection.cs
- NullableLongSumAggregationOperator.cs
- MessageQueuePermissionEntryCollection.cs
- StringUtil.cs
- PersianCalendar.cs
- RuleAttributes.cs
- TreeNodeCollectionEditor.cs
- PriorityItem.cs
- ProcessStartInfo.cs
- LoginUtil.cs
- WebPartCatalogCloseVerb.cs
- BaseAddressPrefixFilterElement.cs
- ImageField.cs
- ResourceCategoryAttribute.cs
- RuntimeArgumentHandle.cs
- FixedPosition.cs
- ListDesigner.cs
- StorageEntityTypeMapping.cs
- SurrogateSelector.cs
- DataGridViewDataErrorEventArgs.cs
- QilChoice.cs
- MetadataException.cs
- MemberAccessException.cs
- DataTableCollection.cs
- SystemIPv4InterfaceProperties.cs
- ObjectDataSource.cs
- OrderPreservingPipeliningMergeHelper.cs
- BinaryObjectReader.cs
- ZoneIdentityPermission.cs
- SafeReadContext.cs
- GridItemPattern.cs
- WebPartDeleteVerb.cs
- GenericsInstances.cs
- SystemTcpStatistics.cs
- ScriptResourceDefinition.cs
- SoapElementAttribute.cs
- HitTestParameters.cs
- HyperLinkColumn.cs
- GridViewRowCollection.cs
- StringUtil.cs
- NullableDecimalAverageAggregationOperator.cs
- IndexingContentUnit.cs
- XmlValidatingReaderImpl.cs
- DrawingAttributeSerializer.cs
- SamlConstants.cs
- MDIControlStrip.cs
- XmlValidatingReader.cs
- TextEditor.cs
- Parameter.cs
- BrowserCapabilitiesCompiler.cs
- Delegate.cs
- XPathQilFactory.cs
- CrossSiteScriptingValidation.cs
- DockPatternIdentifiers.cs
- FixedBufferAttribute.cs
- GridViewCancelEditEventArgs.cs
- Helpers.cs
- HttpEncoder.cs
- AdPostCacheSubstitution.cs
- DriveInfo.cs
- ResXResourceWriter.cs
- LineSegment.cs
- PageThemeCodeDomTreeGenerator.cs
- PathGradientBrush.cs
- PasswordBox.cs
- RadioButtonStandardAdapter.cs
- unsafenativemethodstextservices.cs
- ShadowGlyph.cs
- Transactions.cs
- SoapFormatExtensions.cs
- PeerApplicationLaunchInfo.cs
- CultureInfoConverter.cs
- Keyboard.cs
- DataGridViewLinkCell.cs
- Globals.cs
- ConfigXmlCDataSection.cs
- Color.cs
- Constants.cs
- QilIterator.cs
- MenuCommands.cs
- DispatchWrapper.cs