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
- PngBitmapEncoder.cs
- TableMethodGenerator.cs
- Transform.cs
- TypeInitializationException.cs
- SafeEventLogWriteHandle.cs
- ImageList.cs
- PositiveTimeSpanValidatorAttribute.cs
- SymmetricKeyWrap.cs
- util.cs
- DynamicActionMessageFilter.cs
- HtmlControl.cs
- AppModelKnownContentFactory.cs
- DataServiceQueryOfT.cs
- WsatRegistrationHeader.cs
- AppDomainFactory.cs
- _AuthenticationState.cs
- NotFiniteNumberException.cs
- MsmqInputChannelListener.cs
- ValidatingReaderNodeData.cs
- Rotation3D.cs
- ExpressionBuilder.cs
- BitmapPalette.cs
- ParseNumbers.cs
- AppDomain.cs
- MaskedTextBox.cs
- WebPartEditorOkVerb.cs
- SchemaConstraints.cs
- RangeValidator.cs
- DesignerTextViewAdapter.cs
- PocoEntityKeyStrategy.cs
- WaitHandle.cs
- MobileControlsSection.cs
- AutoSizeToolBoxItem.cs
- SqlDataSource.cs
- FigureParagraph.cs
- TypeDescriptorFilterService.cs
- ButtonFlatAdapter.cs
- RightsDocument.cs
- WizardForm.cs
- DoubleAnimation.cs
- DataGridColumnCollection.cs
- SiteIdentityPermission.cs
- ServiceMetadataPublishingElement.cs
- CanonicalXml.cs
- WindowsFormsSynchronizationContext.cs
- DecryptRequest.cs
- HtmlTableCell.cs
- WebControlAdapter.cs
- TextTreeUndoUnit.cs
- Transform3D.cs
- ScriptingAuthenticationServiceSection.cs
- LicenseException.cs
- BCLDebug.cs
- KeyValueConfigurationCollection.cs
- IntegerValidator.cs
- XmlMapping.cs
- NativeMethods.cs
- XslCompiledTransform.cs
- util.cs
- DataTableReader.cs
- SystemIPGlobalProperties.cs
- TreeNode.cs
- ProxyGenerator.cs
- ChangePasswordDesigner.cs
- ResourcesChangeInfo.cs
- CompilerCollection.cs
- HatchBrush.cs
- CollectionViewGroup.cs
- Viewport3DAutomationPeer.cs
- Component.cs
- FixedSOMContainer.cs
- SqlAliasesReferenced.cs
- PointUtil.cs
- ReferencedAssembly.cs
- BindingValueChangedEventArgs.cs
- XmlDictionary.cs
- TemplatedWizardStep.cs
- DoubleIndependentAnimationStorage.cs
- ConstructorNeedsTagAttribute.cs
- InvalidDataException.cs
- TypeUsage.cs
- FlowDocumentReader.cs
- ConfigXmlAttribute.cs
- ExpressionEditorAttribute.cs
- System.Data.OracleClient_BID.cs
- NullableFloatSumAggregationOperator.cs
- UrlAuthorizationModule.cs
- Wildcard.cs
- ExpressionLexer.cs
- SimpleHandlerBuildProvider.cs
- FormViewPageEventArgs.cs
- Encoding.cs
- ObjectDataSourceEventArgs.cs
- ProvidersHelper.cs
- UnionCqlBlock.cs
- ToolTip.cs
- OdbcInfoMessageEvent.cs
- ContextStaticAttribute.cs
- ImageField.cs
- BaseWebProxyFinder.cs