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
- FunctionQuery.cs
- ToolStripContainer.cs
- DbParameterHelper.cs
- SQLByte.cs
- InternalConfigEventArgs.cs
- AudienceUriMode.cs
- Int16AnimationUsingKeyFrames.cs
- CodeStatement.cs
- HtmlControl.cs
- HandlerMappingMemo.cs
- CorrelationTokenInvalidatedHandler.cs
- TabPageDesigner.cs
- DataControlFieldHeaderCell.cs
- ThreadExceptionDialog.cs
- GenericIdentity.cs
- PublishLicense.cs
- XsdCachingReader.cs
- ButtonField.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- BuildManager.cs
- TypeConstant.cs
- Rotation3D.cs
- _NtlmClient.cs
- SrgsElementList.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- BaseParaClient.cs
- dbenumerator.cs
- CacheChildrenQuery.cs
- GB18030Encoding.cs
- AnimationClockResource.cs
- VisualState.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- Path.cs
- PieceNameHelper.cs
- EventsTab.cs
- CodeTypeDelegate.cs
- ChildrenQuery.cs
- ExtensionQuery.cs
- ToolStripRendererSwitcher.cs
- MappingException.cs
- PerformanceCounterManager.cs
- ICspAsymmetricAlgorithm.cs
- XmlNamespaceMappingCollection.cs
- ToolStripProgressBar.cs
- DecoderBestFitFallback.cs
- CultureSpecificCharacterBufferRange.cs
- HttpWebResponse.cs
- BitmapCodecInfoInternal.cs
- DetailsViewUpdatedEventArgs.cs
- Hex.cs
- TraceSection.cs
- RuntimeArgumentHandle.cs
- HttpConfigurationSystem.cs
- VectorAnimationUsingKeyFrames.cs
- EntityViewGenerationAttribute.cs
- D3DImage.cs
- DrawingContextWalker.cs
- ServerValidateEventArgs.cs
- EditorPartChrome.cs
- CoreSwitches.cs
- StateMachineAction.cs
- MessageQueuePermissionEntryCollection.cs
- UrlMappingsSection.cs
- TransformProviderWrapper.cs
- PrivateFontCollection.cs
- TextPointer.cs
- XmlResolver.cs
- WindowsScrollBarBits.cs
- ManagementClass.cs
- MessageQueuePermissionAttribute.cs
- DoubleKeyFrameCollection.cs
- SelectedDatesCollection.cs
- PrintingPermissionAttribute.cs
- TextRangeEditTables.cs
- Utils.cs
- HostProtectionException.cs
- GenericAuthenticationEventArgs.cs
- SizeConverter.cs
- CompilerGeneratedAttribute.cs
- Expressions.cs
- ConfigsHelper.cs
- DrawListViewSubItemEventArgs.cs
- XmlDataSourceDesigner.cs
- StaticTextPointer.cs
- TextBoxLine.cs
- XsltLibrary.cs
- TreeNodeCollection.cs
- SqlBooleanMismatchVisitor.cs
- MsmqUri.cs
- X509Utils.cs
- SeverityFilter.cs
- ValueTypeFixupInfo.cs
- CompilerScopeManager.cs
- CustomSignedXml.cs
- CompensatableSequenceActivity.cs
- ArraySegment.cs
- ZipArchive.cs
- WebPartConnectionCollection.cs
- FloaterBaseParaClient.cs
- IntSecurity.cs