Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / UdpDiscoveryEndpoint.cs / 1305376 / UdpDiscoveryEndpoint.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.ServiceModel.Discovery
{
using System.Diagnostics.CodeAnalysis;
using System.Runtime;
using System.ServiceModel.Channels;
[Fx.Tag.XamlVisible(false)]
public class UdpDiscoveryEndpoint : DiscoveryEndpoint
{
[SuppressMessage(FxCop.Category.Security, FxCop.Rule.DoNotDeclareReadOnlyMutableReferenceTypes)]
[SuppressMessage(FxCop.Category.Naming, "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Pv", Justification="IPv4 is valid.")]
public static readonly Uri DefaultIPv4MulticastAddress = DiscoveryDefaults.Udp.IPv4MulticastAddress;
[SuppressMessage(FxCop.Category.Security, FxCop.Rule.DoNotDeclareReadOnlyMutableReferenceTypes)]
[SuppressMessage(FxCop.Category.Naming, "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Pv", Justification = "IPv6 is valid.")]
public static readonly Uri DefaultIPv6MulticastAddress = DiscoveryDefaults.Udp.IPv6MulticastAddress;
DiscoveryViaBehavior viaBehavior;
UdpTransportSettings udpTransportSettings;
public UdpDiscoveryEndpoint()
: this(DefaultIPv4MulticastAddress)
{
}
public UdpDiscoveryEndpoint(string multicastAddress)
: this(new Uri(multicastAddress))
{
}
public UdpDiscoveryEndpoint(Uri multicastAddress)
: this(DiscoveryVersion.DefaultDiscoveryVersion, multicastAddress)
{
}
public UdpDiscoveryEndpoint(DiscoveryVersion discoveryVersion)
: this(discoveryVersion, DefaultIPv4MulticastAddress)
{
}
public UdpDiscoveryEndpoint(DiscoveryVersion discoveryVersion, string multicastAddress)
: this(discoveryVersion, new Uri(multicastAddress))
{
}
public UdpDiscoveryEndpoint(DiscoveryVersion discoveryVersion, Uri multicastAddress)
: base(discoveryVersion, ServiceDiscoveryMode.Adhoc)
{
if (multicastAddress == null)
{
throw FxTrace.Exception.ArgumentNull("multicastAddress");
}
if (discoveryVersion == null)
{
throw FxTrace.Exception.ArgumentNull("discoveryVersion");
}
Initialize(multicastAddress);
}
public Uri MulticastAddress
{
get
{
return this.viaBehavior.Via;
}
set
{
if (value == null)
{
throw FxTrace.Exception.ArgumentNull("value");
}
this.viaBehavior.Via = value;
base.ListenUri = value;
}
}
public UdpTransportSettings TransportSettings
{
get
{
return this.udpTransportSettings;
}
}
void Initialize(Uri multicastAddress)
{
this.viaBehavior = new DiscoveryViaBehavior(multicastAddress);
base.ListenUri = multicastAddress;
TextMessageEncodingBindingElement textBE = new TextMessageEncodingBindingElement();
textBE.MessageVersion = base.DiscoveryVersion.Implementation.MessageVersion;
UdpTransportBindingElement udpBE = DiscoveryDefaults.Udp.CreateUdpTransportBindingElement();
this.udpTransportSettings = new UdpTransportSettings(udpBE);
CustomBinding binding = new CustomBinding();
binding.Elements.Add(textBE);
binding.Elements.Add(udpBE);
base.MaxResponseDelay = DiscoveryDefaults.Udp.AppMaxDelay;
base.Address = new EndpointAddress(base.DiscoveryVersion.Implementation.DiscoveryAddress);
base.Binding = binding;
base.Behaviors.Add(this.viaBehavior);
base.Behaviors.Add(new UdpReplyToBehavior(udpBE.Scheme));
base.Behaviors.Add(new UdpContractFilterBehavior());
}
}
}
// 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
- ComponentDispatcher.cs
- CommentAction.cs
- BaseHashHelper.cs
- ComponentEditorForm.cs
- LocalBuilder.cs
- ScaleTransform.cs
- DesignTimeTemplateParser.cs
- Misc.cs
- ConfigPathUtility.cs
- X509Chain.cs
- VersionedStreamOwner.cs
- HttpRawResponse.cs
- CompensationHandlingFilter.cs
- CodeDirectiveCollection.cs
- ContentValidator.cs
- Int16Converter.cs
- DynamicControl.cs
- TableLayoutRowStyleCollection.cs
- ReadWriteObjectLock.cs
- OptimizerPatterns.cs
- WindowsContainer.cs
- mda.cs
- ModelTreeEnumerator.cs
- TemplateXamlParser.cs
- SqlDelegatedTransaction.cs
- TdsRecordBufferSetter.cs
- PaintEvent.cs
- MasterPageBuildProvider.cs
- ReflectionHelper.cs
- EncryptedKey.cs
- HexParser.cs
- TablePattern.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- MethodAccessException.cs
- DataObjectSettingDataEventArgs.cs
- OdbcError.cs
- SimpleBitVector32.cs
- ToolStripRendererSwitcher.cs
- RC2.cs
- SizeChangedInfo.cs
- HtmlInputPassword.cs
- IsolatedStorageFilePermission.cs
- SqlCacheDependency.cs
- FactoryMaker.cs
- ByteFacetDescriptionElement.cs
- XPathQilFactory.cs
- NonceCache.cs
- MaxMessageSizeStream.cs
- ZipPackage.cs
- Attributes.cs
- CaseInsensitiveOrdinalStringComparer.cs
- RightsManagementEncryptionTransform.cs
- SafeEventLogReadHandle.cs
- RootBrowserWindowProxy.cs
- ProcessThreadCollection.cs
- EntitySqlException.cs
- SqlParameter.cs
- PerformanceCounterPermissionEntryCollection.cs
- BindingContext.cs
- CodeBlockBuilder.cs
- CultureInfoConverter.cs
- DnsEndPoint.cs
- FullTextLine.cs
- GeometryGroup.cs
- ConfigXmlWhitespace.cs
- OracleEncoding.cs
- AttributeCollection.cs
- GlyphRun.cs
- SettingsAttributes.cs
- RelationshipEntry.cs
- ServicesSection.cs
- ServiceProviders.cs
- FilterQueryOptionExpression.cs
- SqlDuplicator.cs
- HandleRef.cs
- EmbeddedMailObjectsCollection.cs
- CodeNamespaceImport.cs
- TextParagraph.cs
- XomlCompilerParameters.cs
- ObjRef.cs
- ACE.cs
- _HeaderInfoTable.cs
- _UriTypeConverter.cs
- DataGridViewBindingCompleteEventArgs.cs
- StyleBamlTreeBuilder.cs
- XmlBinaryWriterSession.cs
- WindowInteractionStateTracker.cs
- DataGridViewCellCancelEventArgs.cs
- Semaphore.cs
- MimeMultiPart.cs
- ProxyFragment.cs
- WebControlToolBoxItem.cs
- ItemMap.cs
- ClipboardData.cs
- CollectionView.cs
- DataKeyArray.cs
- ContextMenuStrip.cs
- CachedBitmap.cs
- DataGridAddNewRow.cs
- OptimalTextSource.cs