Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / DiscoveryClientBindingElement.cs / 1305376 / DiscoveryClientBindingElement.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Description; [Fx.Tag.XamlVisible(false)] sealed public class DiscoveryClientBindingElement : BindingElement { [SuppressMessage(FxCop.Category.Security, FxCop.Rule.DoNotDeclareReadOnlyMutableReferenceTypes, Justification = "EndpointAddress is an immutable type.")] public static readonly EndpointAddress DiscoveryEndpointAddress = new EndpointAddress("http://schemas.microsoft.com/discovery/dynamic"); DiscoveryEndpointProvider discoveryEndpointProvider; FindCriteria findCriteria; public DiscoveryClientBindingElement() { this.FindCriteria = new FindCriteria(); this.DiscoveryEndpointProvider = new UdpDiscoveryEndpointProvider(); } public DiscoveryClientBindingElement(DiscoveryEndpointProvider discoveryEndpointProvider, FindCriteria findCriteria) { if (discoveryEndpointProvider == null) { throw FxTrace.Exception.ArgumentNull("discoveryEndpointProvider"); } if (findCriteria == null) { throw FxTrace.Exception.ArgumentNull("findCriteria"); } this.findCriteria = findCriteria; this.discoveryEndpointProvider = discoveryEndpointProvider; } private DiscoveryClientBindingElement(DiscoveryClientBindingElement elementToBeCloned) : base(elementToBeCloned) { this.discoveryEndpointProvider = elementToBeCloned.DiscoveryEndpointProvider; this.findCriteria = elementToBeCloned.FindCriteria.Clone();; } public DiscoveryEndpointProvider DiscoveryEndpointProvider { get { return this.discoveryEndpointProvider; } set { if (value == null) { throw FxTrace.Exception.ArgumentNull("value"); } this.discoveryEndpointProvider = value; } } public FindCriteria FindCriteria { get { return this.findCriteria; } set { if (value == null) { throw FxTrace.Exception.ArgumentNull("value"); } this.findCriteria = value; } } public override bool CanBuildChannelFactory(BindingContext context) { if (context == null) { throw FxTrace.Exception.ArgumentNull("context"); } if (typeof(TChannel) == typeof(IOutputChannel) || typeof(TChannel) == typeof(IDuplexChannel) || typeof(TChannel) == typeof(IRequestChannel) || typeof(TChannel) == typeof(IOutputSessionChannel) || typeof(TChannel) == typeof(IRequestSessionChannel) || typeof(TChannel) == typeof(IDuplexSessionChannel)) { return context.CanBuildInnerChannelFactory (); } return false; } public override IChannelFactory BuildChannelFactory (BindingContext context) { if (context == null) { throw FxTrace.Exception.ArgumentNull("context"); } if (context.Binding.Elements.IndexOf(this) != 0) { throw FxTrace.Exception.AsError(new InvalidOperationException(SR.DiscoveryClientBindingElementNotFirst)); } if (this.CanBuildChannelFactory (context)) { return new DiscoveryClientChannelFactory ( context.BuildInnerChannelFactory (), this.FindCriteria, this.DiscoveryEndpointProvider); } else { throw FxTrace.Exception.Argument("TChannel", ServiceModel.SR.GetString(ServiceModel.SR.ChannelTypeNotSupported, typeof(TChannel))); } } public override bool CanBuildChannelListener (BindingContext context) { if (context == null) { throw FxTrace.Exception.ArgumentNull("context"); } return false; } public override IChannelListener BuildChannelListener (BindingContext context) { if (context == null) { throw FxTrace.Exception.ArgumentNull("context"); } throw FxTrace.Exception.Argument("TChannel", ServiceModel.SR.GetString(ServiceModel.SR.ChannelTypeNotSupported, typeof(TChannel))); } public override BindingElement Clone() { return new DiscoveryClientBindingElement(this); } public override T GetProperty (BindingContext context) { if (context == null) { throw FxTrace.Exception.ArgumentNull("context"); } return context.GetInnerProperty (); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OverloadGroupAttribute.cs
- HttpConfigurationContext.cs
- DiffuseMaterial.cs
- AutoResizedEvent.cs
- TypeInitializationException.cs
- ProgressBarAutomationPeer.cs
- InvalidProgramException.cs
- MsmqInputChannelListener.cs
- HtmlTextArea.cs
- ProcessModelSection.cs
- DictationGrammar.cs
- DrawingCollection.cs
- SecurityToken.cs
- DocumentSequence.cs
- ServiceContractGenerationContext.cs
- DropAnimation.xaml.cs
- Geometry3D.cs
- FontUnitConverter.cs
- OdbcConnection.cs
- AlignmentXValidation.cs
- WeakKeyDictionary.cs
- WebPartZoneBase.cs
- ExpressionEvaluator.cs
- KnownBoxes.cs
- EntityDataSourceDesignerHelper.cs
- ConfigurationValidatorBase.cs
- UnwrappedTypesXmlSerializerManager.cs
- TypeElement.cs
- XmlDictionaryString.cs
- Dynamic.cs
- ListItemCollection.cs
- ValidatingPropertiesEventArgs.cs
- MailSettingsSection.cs
- Mapping.cs
- CommonDialog.cs
- LoadedEvent.cs
- StateWorkerRequest.cs
- BitmapEffectGroup.cs
- SkinBuilder.cs
- URI.cs
- GridItemPattern.cs
- CompilationUnit.cs
- MemberCollection.cs
- TrackingAnnotationCollection.cs
- DynamicEntity.cs
- AuthenticationService.cs
- GlyphShapingProperties.cs
- MessageSecurityTokenVersion.cs
- COAUTHINFO.cs
- RotateTransform3D.cs
- KeyFrames.cs
- RepeaterItem.cs
- Configuration.cs
- SqlCacheDependency.cs
- DrawingBrush.cs
- WebServiceReceive.cs
- CacheAxisQuery.cs
- OperatingSystem.cs
- ListBoxItemAutomationPeer.cs
- ReferencedType.cs
- TableItemProviderWrapper.cs
- DataGridViewColumnEventArgs.cs
- DataGridViewCellCancelEventArgs.cs
- ObjectStateEntryDbDataRecord.cs
- BaseCollection.cs
- Grid.cs
- XmlIterators.cs
- HttpPostLocalhostServerProtocol.cs
- UnsafeNativeMethods.cs
- ContextProperty.cs
- TouchPoint.cs
- DescendentsWalkerBase.cs
- TdsParserHelperClasses.cs
- ADMembershipProvider.cs
- RsaSecurityTokenAuthenticator.cs
- WorkBatch.cs
- Renderer.cs
- DataRowCollection.cs
- FlowDecision.cs
- ServicePointManager.cs
- WeakHashtable.cs
- GeometryHitTestResult.cs
- MappingModelBuildProvider.cs
- AutomationElementCollection.cs
- ArraySubsetEnumerator.cs
- CommandBindingCollection.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- ObjectSecurity.cs
- EncryptedType.cs
- ValidatedControlConverter.cs
- FlatButtonAppearance.cs
- UnsafeMethods.cs
- XmlSignificantWhitespace.cs
- XmlSchemaInclude.cs
- storepermissionattribute.cs
- CrossSiteScriptingValidation.cs
- Baml2006Reader.cs
- DataGridViewLinkColumn.cs
- CurrentChangingEventArgs.cs
- CharacterShapingProperties.cs