e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
107 lines
6.1 KiB
C#
107 lines
6.1 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace System.ServiceModel.Configuration
|
|
{
|
|
using System.Configuration;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime;
|
|
using System.ServiceModel.Channels;
|
|
|
|
public sealed partial class UdpTransportElement : TransportElement
|
|
{
|
|
public UdpTransportElement() : base()
|
|
{
|
|
}
|
|
|
|
public override void ApplyConfiguration(BindingElement bindingElement)
|
|
{
|
|
base.ApplyConfiguration(bindingElement);
|
|
UdpTransportBindingElement udpTransportBindingElement = (UdpTransportBindingElement)bindingElement;
|
|
|
|
udpTransportBindingElement.DuplicateMessageHistoryLength = this.DuplicateMessageHistoryLength;
|
|
udpTransportBindingElement.MaxPendingMessagesTotalSize = this.MaxPendingMessagesTotalSize;
|
|
udpTransportBindingElement.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
|
|
udpTransportBindingElement.MulticastInterfaceId = this.MulticastInterfaceId;
|
|
this.RetransmissionSettings.ApplyConfiguration(udpTransportBindingElement.RetransmissionSettings);
|
|
udpTransportBindingElement.SocketReceiveBufferSize = this.SocketReceiveBufferSize;
|
|
udpTransportBindingElement.TimeToLive = this.TimeToLive;
|
|
}
|
|
|
|
protected internal override void InitializeFrom(BindingElement bindingElement)
|
|
{
|
|
base.InitializeFrom(bindingElement);
|
|
UdpTransportBindingElement udpTransportBindingElement = (UdpTransportBindingElement)bindingElement;
|
|
|
|
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.DuplicateMessageHistoryLength, udpTransportBindingElement.DuplicateMessageHistoryLength);
|
|
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxPendingMessagesTotalSize, udpTransportBindingElement.MaxPendingMessagesTotalSize);
|
|
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxReceivedMessageSize, udpTransportBindingElement.MaxReceivedMessageSize);
|
|
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MulticastInterfaceId, udpTransportBindingElement.MulticastInterfaceId);
|
|
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.SocketReceiveBufferSize, udpTransportBindingElement.SocketReceiveBufferSize);
|
|
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.TimeToLive, udpTransportBindingElement.TimeToLive);
|
|
|
|
this.RetransmissionSettings.InitializeFrom(udpTransportBindingElement.RetransmissionSettings);
|
|
}
|
|
|
|
[SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationPropertyAttributeRule, Justification = "this property not a configuration property")]
|
|
public override Type BindingElementType
|
|
{
|
|
get { return typeof(UdpTransportBindingElement); }
|
|
}
|
|
|
|
protected override TransportBindingElement CreateDefaultBindingElement()
|
|
{
|
|
return new UdpTransportBindingElement();
|
|
}
|
|
|
|
[ConfigurationProperty(UdpTransportConfigurationStrings.DuplicateMessageHistoryLength, DefaultValue = UdpConstants.Defaults.DuplicateMessageHistoryLength)]
|
|
[IntegerValidator(MinValue = 0)]
|
|
public int DuplicateMessageHistoryLength
|
|
{
|
|
get { return (int)base[UdpTransportConfigurationStrings.DuplicateMessageHistoryLength]; }
|
|
set { base[UdpTransportConfigurationStrings.DuplicateMessageHistoryLength] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(UdpTransportConfigurationStrings.MaxPendingMessagesTotalSize, DefaultValue = UdpConstants.Defaults.DefaultMaxPendingMessagesTotalSize)]
|
|
[LongValidator(MinValue = UdpConstants.MinPendingMessagesTotalSize)]
|
|
public long MaxPendingMessagesTotalSize
|
|
{
|
|
get { return (long)base[UdpTransportConfigurationStrings.MaxPendingMessagesTotalSize]; }
|
|
set { base[UdpTransportConfigurationStrings.MaxPendingMessagesTotalSize] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(UdpTransportConfigurationStrings.MulticastInterfaceId, DefaultValue = UdpConstants.Defaults.MulticastInterfaceId)]
|
|
[StringValidator()]
|
|
public string MulticastInterfaceId
|
|
{
|
|
get { return (string)base[UdpTransportConfigurationStrings.MulticastInterfaceId]; }
|
|
set { base[UdpTransportConfigurationStrings.MulticastInterfaceId] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(UdpTransportConfigurationStrings.SocketReceiveBufferSize, DefaultValue = UdpConstants.Defaults.SocketReceiveBufferSize)]
|
|
[IntegerValidator(MinValue = UdpConstants.MinReceiveBufferSize)]
|
|
public int SocketReceiveBufferSize
|
|
{
|
|
get { return (int)base[UdpTransportConfigurationStrings.SocketReceiveBufferSize]; }
|
|
set { base[UdpTransportConfigurationStrings.SocketReceiveBufferSize] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(UdpTransportConfigurationStrings.TimeToLive, DefaultValue = UdpConstants.Defaults.TimeToLive)]
|
|
[IntegerValidator(MinValue = UdpConstants.MinTimeToLive, MaxValue = UdpConstants.MaxTimeToLive)]
|
|
public int TimeToLive
|
|
{
|
|
get { return (int)base[UdpTransportConfigurationStrings.TimeToLive]; }
|
|
set { base[UdpTransportConfigurationStrings.TimeToLive] = value; }
|
|
}
|
|
|
|
[ConfigurationProperty(UdpTransportConfigurationStrings.RetransmissionSettings)]
|
|
[SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationValidatorAttributeRule, Justification = "there's no validator for UdpRetransmissionSettingsElement")]
|
|
public UdpRetransmissionSettingsElement RetransmissionSettings
|
|
{
|
|
get { return (UdpRetransmissionSettingsElement)base[UdpTransportConfigurationStrings.RetransmissionSettings]; }
|
|
set { base[UdpTransportConfigurationStrings.RetransmissionSettings] = value; }
|
|
}
|
|
}
|
|
}
|