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
- ComboBoxItem.cs
- cryptoapiTransform.cs
- ServiceSecurityAuditElement.cs
- ScriptComponentDescriptor.cs
- LocalizabilityAttribute.cs
- SetterBaseCollection.cs
- WebPartMovingEventArgs.cs
- AspNetSynchronizationContext.cs
- ArrangedElement.cs
- WebPartUserCapability.cs
- SoapUnknownHeader.cs
- DataGridViewSelectedColumnCollection.cs
- SamlNameIdentifierClaimResource.cs
- NamespaceDecl.cs
- VirtualDirectoryMappingCollection.cs
- MeasurementDCInfo.cs
- BinaryFormatterWriter.cs
- XmlSchemaExternal.cs
- ChangeProcessor.cs
- PathGeometry.cs
- WebConfigManager.cs
- VisualTransition.cs
- Util.cs
- TemplateColumn.cs
- Int32EqualityComparer.cs
- StringCollection.cs
- BitmapFrameDecode.cs
- ToolStripTextBox.cs
- WinCategoryAttribute.cs
- XPathNodeHelper.cs
- Component.cs
- DataGridLengthConverter.cs
- Size.cs
- ToolStripDropDownClosedEventArgs.cs
- DataGridSortCommandEventArgs.cs
- OleDbException.cs
- DataServiceRequest.cs
- RealProxy.cs
- SubpageParagraph.cs
- PageThemeCodeDomTreeGenerator.cs
- TabPanel.cs
- SqlConnectionHelper.cs
- UniqueIdentifierService.cs
- EastAsianLunisolarCalendar.cs
- DataObject.cs
- TimeoutTimer.cs
- StreamingContext.cs
- CodeAccessSecurityEngine.cs
- PropertyConverter.cs
- CodeChecksumPragma.cs
- XmlNodeChangedEventManager.cs
- SimpleHandlerFactory.cs
- BaseTemplateBuildProvider.cs
- WindowsRichEdit.cs
- ImageAutomationPeer.cs
- DrawingImage.cs
- DataGridViewElement.cs
- SimpleWorkerRequest.cs
- XPathNodeIterator.cs
- PluralizationService.cs
- DataContractSerializerMessageContractImporter.cs
- DeadLetterQueue.cs
- _Rfc2616CacheValidators.cs
- Image.cs
- ASCIIEncoding.cs
- TargetConverter.cs
- PropertyInfoSet.cs
- SoapElementAttribute.cs
- ConnectionProviderAttribute.cs
- ISO2022Encoding.cs
- parserscommon.cs
- ExceptionValidationRule.cs
- TerminatorSinks.cs
- ItemCollection.cs
- AppDomainAttributes.cs
- SharedUtils.cs
- PropertyMappingExceptionEventArgs.cs
- BinaryNode.cs
- ResourcesChangeInfo.cs
- XamlVector3DCollectionSerializer.cs
- TableRowGroup.cs
- _TransmitFileOverlappedAsyncResult.cs
- NameSpaceExtractor.cs
- GenericXmlSecurityTokenAuthenticator.cs
- PropertyContainer.cs
- ImageListStreamer.cs
- TypeToken.cs
- QueryResponse.cs
- Parser.cs
- XmlSchemaComplexContentRestriction.cs
- WindowsScrollBarBits.cs
- XmlDataCollection.cs
- ImageDrawing.cs
- HtmlInputSubmit.cs
- UnsafeNetInfoNativeMethods.cs
- ThousandthOfEmRealDoubles.cs
- HttpApplicationFactory.cs
- LineBreak.cs
- PhoneCall.cs
- HwndHost.cs