|
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System.Configuration;
using System.ServiceModel;
using System.Globalization;
using System.ServiceModel.Security;
using System.ServiceModel.Channels;
using System.Net.Security;
public partial class NetMsmqBindingElement : MsmqBindingElementBase
{
public NetMsmqBindingElement(string name)
: base(name)
{
}
public NetMsmqBindingElement()
: this(null)
{
}
protected override Type BindingElementType
{
get { return typeof(NetMsmqBinding); }
}
[ConfigurationProperty(ConfigurationStrings.QueueTransferProtocol, DefaultValue = MsmqDefaults.QueueTransferProtocol)]
[ServiceModelEnumValidator(typeof(QueueTransferProtocolHelper))]
public QueueTransferProtocol QueueTransferProtocol
{
get { return (QueueTransferProtocol)base[ConfigurationStrings.QueueTransferProtocol]; }
set { base[ConfigurationStrings.QueueTransferProtocol] = value; }
}
[ConfigurationProperty(ConfigurationStrings.ReaderQuotas)]
public XmlDictionaryReaderQuotasElement ReaderQuotas
{
get { return (XmlDictionaryReaderQuotasElement)base[ConfigurationStrings.ReaderQuotas]; }
}
[ConfigurationProperty(ConfigurationStrings.MaxBufferPoolSize, DefaultValue = TransportDefaults.MaxBufferPoolSize)]
[LongValidator(MinValue = 0)]
public long MaxBufferPoolSize
{
get { return (long)base[ConfigurationStrings.MaxBufferPoolSize]; }
set { base[ConfigurationStrings.MaxBufferPoolSize] = value; }
}
[ConfigurationProperty(ConfigurationStrings.Security)]
public NetMsmqSecurityElement Security
{
get { return (NetMsmqSecurityElement)base[ConfigurationStrings.Security]; }
}
[ConfigurationProperty(ConfigurationStrings.UseActiveDirectory, DefaultValue = MsmqDefaults.UseActiveDirectory)]
public bool UseActiveDirectory
{
get { return (bool)base[ConfigurationStrings.UseActiveDirectory]; }
set { base[ConfigurationStrings.UseActiveDirectory] = value; }
}
protected internal override void InitializeFrom(Binding binding)
{
base.InitializeFrom(binding);
NetMsmqBinding npmBinding = (NetMsmqBinding)binding;
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferPoolSize, npmBinding.MaxBufferPoolSize);
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.QueueTransferProtocol, npmBinding.QueueTransferProtocol);
SetPropertyValueIfNotDefaultValue(ConfigurationStrings.UseActiveDirectory, npmBinding.UseActiveDirectory);
this.Security.InitializeFrom(npmBinding.Security);
this.ReaderQuotas.InitializeFrom(npmBinding.ReaderQuotas);
}
protected override void OnApplyConfiguration(Binding binding)
{
base.OnApplyConfiguration(binding);
NetMsmqBinding npmBinding = (NetMsmqBinding)binding;
npmBinding.MaxBufferPoolSize = this.MaxBufferPoolSize;
npmBinding.QueueTransferProtocol = this.QueueTransferProtocol;
npmBinding.UseActiveDirectory = this.UseActiveDirectory;
this.Security.ApplyConfiguration(npmBinding.Security);
this.ReaderQuotas.ApplyConfiguration(npmBinding.ReaderQuotas);
}
}
}
|