|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System.ComponentModel;
using System.Configuration;
using System.Diagnostics.CodeAnalysis;
using System.Runtime;
using System.ServiceModel.Channels;
using System.Text;
public partial class UdpBindingElement : StandardBindingElement
{
public UdpBindingElement(string name)
: base(name)
{
}
public UdpBindingElement()
: this(null)
{
}
protected override Type BindingElementType
{
get { return typeof(UdpBinding); }
}
[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.MaxBufferPoolSize, DefaultValue = TransportDefaults.MaxBufferPoolSize)]
[LongValidator(MinValue = 0)]
public long MaxBufferPoolSize
{
get { return (long)base[UdpTransportConfigurationStrings.MaxBufferPoolSize]; }
set { base[UdpTransportConfigurationStrings.MaxBufferPoolSize] = value; }
}
[ConfigurationProperty(UdpTransportConfigurationStrings.MaxRetransmitCount, DefaultValue = UdpConstants.Defaults.MaxRetransmitCount)]
[IntegerValidator(MinValue = 0)]
public int MaxRetransmitCount
{
get { return (int)base[UdpTransportConfigurationStrings.MaxRetransmitCount]; }
set { base[UdpTransportConfigurationStrings.MaxRetransmitCount] = 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; }
}
// Min value has to be 1, because it's 1 in the TransportBindingElement
[ConfigurationProperty(UdpTransportConfigurationStrings.MaxReceivedMessageSize, DefaultValue = UdpConstants.Defaults.MaxReceivedMessageSize)]
[LongValidator(MinValue = 1)]
public long MaxReceivedMessageSize
{
get { return (long)this[UdpTransportConfigurationStrings.MaxReceivedMessageSize]; }
set { this[UdpTransportConfigurationStrings.MaxReceivedMessageSize] = 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.ReaderQuotas)]
public XmlDictionaryReaderQuotasElement ReaderQuotas
{
get { return (XmlDictionaryReaderQuotasElement)base[UdpTransportConfigurationStrings.ReaderQuotas]; }
}
[ConfigurationProperty(UdpTransportConfigurationStrings.TextEncoding, DefaultValue = UdpConstants.Defaults.EncodingString)]
[TypeConverter(typeof(EncodingConverter))]
[SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationValidatorAttributeRule, Justification = "this property not a configuration property")]
public Encoding TextEncoding
{
get { return (Encoding)base[UdpTransportConfigurationStrings.TextEncoding]; }
set { base[UdpTransportConfigurationStrings.TextEncoding] = 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; }
}
protected internal override void InitializeFrom(Binding binding)
{
base.InitializeFrom(binding);
UdpBinding udpBinding = (UdpBinding)binding;
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.DuplicateMessageHistoryLength, udpBinding.DuplicateMessageHistoryLength);
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxBufferPoolSize, udpBinding.MaxBufferPoolSize);
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxRetransmitCount, udpBinding.MaxRetransmitCount);
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxPendingMessagesTotalSize, udpBinding.MaxPendingMessagesTotalSize);
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MaxReceivedMessageSize, udpBinding.MaxReceivedMessageSize);
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.MulticastInterfaceId, udpBinding.MulticastInterfaceId);
this.SetPropertyValueIfNotDefaultValue(UdpTransportConfigurationStrings.TimeToLive, udpBinding.TimeToLive);
}
protected override void OnApplyConfiguration(Binding binding)
{
UdpBinding udpBinding = (UdpBinding)binding;
udpBinding.DuplicateMessageHistoryLength = this.DuplicateMessageHistoryLength;
udpBinding.MaxBufferPoolSize = this.MaxBufferPoolSize;
udpBinding.MaxRetransmitCount = this.MaxRetransmitCount;
udpBinding.MaxPendingMessagesTotalSize = this.MaxPendingMessagesTotalSize;
udpBinding.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
udpBinding.MulticastInterfaceId = this.MulticastInterfaceId;
udpBinding.TimeToLive = this.TimeToLive;
}
}
}
|