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
- Convert.cs
- WriteLineDesigner.xaml.cs
- XamlStyleSerializer.cs
- CompositeScriptReferenceEventArgs.cs
- Directory.cs
- BitmapEffectInput.cs
- URLString.cs
- PageThemeParser.cs
- LinqDataSourceView.cs
- MembershipPasswordException.cs
- Vector3DKeyFrameCollection.cs
- DynamicValidatorEventArgs.cs
- Semaphore.cs
- ellipse.cs
- _ChunkParse.cs
- DBNull.cs
- Environment.cs
- COM2IDispatchConverter.cs
- SmiConnection.cs
- AspProxy.cs
- Inflater.cs
- InputBinder.cs
- CompilerScopeManager.cs
- UInt32Converter.cs
- ElementsClipboardData.cs
- FormViewInsertedEventArgs.cs
- DeferrableContentConverter.cs
- PropertyDescriptorCollection.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- ResourceManager.cs
- DetailsViewRowCollection.cs
- SystemColors.cs
- CodeConditionStatement.cs
- ReliableSessionBindingElement.cs
- PropertyTabChangedEvent.cs
- CommandArguments.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- BindValidator.cs
- TransformerConfigurationWizardBase.cs
- DynamicActionMessageFilter.cs
- ClockGroup.cs
- RoleExceptions.cs
- embossbitmapeffect.cs
- QuaternionRotation3D.cs
- PreservationFileReader.cs
- AppDomainFactory.cs
- EntityContainer.cs
- ConstraintStruct.cs
- SchemaCollectionCompiler.cs
- RequestCachePolicyConverter.cs
- ButtonChrome.cs
- SqlRewriteScalarSubqueries.cs
- ClientRuntime.cs
- SHA1Managed.cs
- WindowsStreamSecurityBindingElement.cs
- ConfigPathUtility.cs
- ReversePositionQuery.cs
- EventSetter.cs
- InputScope.cs
- DataSourceControlBuilder.cs
- SqlGatherConsumedAliases.cs
- TraceContext.cs
- XmlChildNodes.cs
- MediaElement.cs
- KeyValueSerializer.cs
- SQlBooleanStorage.cs
- IntSecurity.cs
- ControlDesigner.cs
- Int16Animation.cs
- TrackingServices.cs
- RemoteEndpointMessageProperty.cs
- RemoteWebConfigurationHostStream.cs
- FillRuleValidation.cs
- Exceptions.cs
- InvalidFilterCriteriaException.cs
- SafeSystemMetrics.cs
- SqlUtils.cs
- PrintPageEvent.cs
- EventLogConfiguration.cs
- List.cs
- ISAPIApplicationHost.cs
- ChineseLunisolarCalendar.cs
- SafeNativeMethods.cs
- BooleanAnimationUsingKeyFrames.cs
- FamilyCollection.cs
- ParameterModifier.cs
- TableColumn.cs
- LogLogRecordHeader.cs
- WebPartDescription.cs
- DataGridView.cs
- _HeaderInfoTable.cs
- Popup.cs
- ContainerFilterService.cs
- RpcCryptoRequest.cs
- StrongNameMembershipCondition.cs
- SqlErrorCollection.cs
- UnsafeNativeMethodsCLR.cs
- FormsAuthenticationCredentials.cs
- ValidationHelper.cs
- PathGeometry.cs