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
- SqlDataReaderSmi.cs
- InternalResources.cs
- SafeNativeMethodsCLR.cs
- PipelineModuleStepContainer.cs
- AuthorizationRule.cs
- ContentPlaceHolder.cs
- EventArgs.cs
- itemelement.cs
- FormViewCommandEventArgs.cs
- ContainerControl.cs
- ConstructorBuilder.cs
- DynamicValidator.cs
- ErrorTolerantObjectWriter.cs
- StateMachine.cs
- MaterialCollection.cs
- JobCollate.cs
- CompiledAction.cs
- GradientStopCollection.cs
- CellPartitioner.cs
- ProtocolViolationException.cs
- ToolStripControlHost.cs
- RuntimeWrappedException.cs
- KeyBinding.cs
- QueryCursorEventArgs.cs
- PropertyGrid.cs
- HashSetDebugView.cs
- Main.cs
- BinarySerializer.cs
- RSAOAEPKeyExchangeDeformatter.cs
- HttpException.cs
- TaiwanCalendar.cs
- CategoryAttribute.cs
- TranslateTransform3D.cs
- InheritanceContextChangedEventManager.cs
- RIPEMD160Managed.cs
- followingsibling.cs
- ConnectionPoint.cs
- DebugHandleTracker.cs
- Schema.cs
- XPathNavigatorReader.cs
- UniqueEventHelper.cs
- CombinedGeometry.cs
- UnsafeNativeMethods.cs
- MSHTMLHost.cs
- RangeValueProviderWrapper.cs
- ExpressionBuilder.cs
- querybuilder.cs
- FormViewDeletedEventArgs.cs
- DataGridView.cs
- ScrollEvent.cs
- ObjectHelper.cs
- SocketCache.cs
- EntityTypeEmitter.cs
- ClrPerspective.cs
- WebPartUtil.cs
- DataContractSerializerOperationBehavior.cs
- XmlSchemaDatatype.cs
- MemberHolder.cs
- UseManagedPresentationBindingElement.cs
- TimelineGroup.cs
- SolidColorBrush.cs
- FixedPage.cs
- CacheMemory.cs
- StorageMappingFragment.cs
- XPathNodeIterator.cs
- ImageSource.cs
- RelatedImageListAttribute.cs
- EntityContainer.cs
- ConfigXmlCDataSection.cs
- WindowsRichEditRange.cs
- Vector3DAnimationBase.cs
- WmiInstallComponent.cs
- DBCommand.cs
- DesignerProperties.cs
- XmlChildNodes.cs
- AddInToken.cs
- ScrollEvent.cs
- FlowLayoutPanelDesigner.cs
- BuildProviderAppliesToAttribute.cs
- SystemWebSectionGroup.cs
- SqlProviderUtilities.cs
- TitleStyle.cs
- RowToParametersTransformer.cs
- ProtocolsConfigurationEntry.cs
- PropertyDescriptorComparer.cs
- DeploymentSectionCache.cs
- keycontainerpermission.cs
- RuleSettings.cs
- RightsManagementPermission.cs
- MediaScriptCommandRoutedEventArgs.cs
- clipboard.cs
- BoundPropertyEntry.cs
- EnumerableValidator.cs
- HttpCacheParams.cs
- SudsParser.cs
- CLSCompliantAttribute.cs
- InputScopeAttribute.cs
- UInt64Storage.cs
- TextEditorTables.cs
- EventManager.cs