|
//-----------------------------------------------------------------------------
// 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; }
}
}
}
|