| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- //------------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
- namespace System.ServiceModel.Configuration
- {
- using System.ComponentModel;
- using System.Configuration;
- using System.ServiceModel;
- using System.Globalization;
- using System.ServiceModel.Security;
- using System.ServiceModel.Channels;
- using System.Net.Security;
- using System.Net.Sockets;
- public partial class NetTcpBindingElement : StandardBindingElement
- {
- public NetTcpBindingElement(string name)
- : base(name)
- {
- }
- public NetTcpBindingElement()
- : this(null)
- {
- }
- protected override Type BindingElementType
- {
- get { return typeof(NetTcpBinding); }
- }
- [ConfigurationProperty(ConfigurationStrings.TransactionFlow, DefaultValue = TransactionFlowDefaults.Transactions)]
- public bool TransactionFlow
- {
- get { return (bool)base[ConfigurationStrings.TransactionFlow]; }
- set { base[ConfigurationStrings.TransactionFlow] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.TransferMode, DefaultValue = ConnectionOrientedTransportDefaults.TransferMode)]
- [ServiceModelEnumValidator(typeof(TransferModeHelper))]
- public TransferMode TransferMode
- {
- get { return (TransferMode)base[ConfigurationStrings.TransferMode]; }
- set { base[ConfigurationStrings.TransferMode] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.TransactionProtocol, DefaultValue = TransactionFlowDefaults.TransactionProtocolString)]
- [TypeConverter(typeof(TransactionProtocolConverter))]
- public TransactionProtocol TransactionProtocol
- {
- get { return (TransactionProtocol)base[ConfigurationStrings.TransactionProtocol]; }
- set { base[ConfigurationStrings.TransactionProtocol] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.HostNameComparisonMode, DefaultValue = ConnectionOrientedTransportDefaults.HostNameComparisonMode)]
- [ServiceModelEnumValidator(typeof(HostNameComparisonModeHelper))]
- public HostNameComparisonMode HostNameComparisonMode
- {
- get { return (HostNameComparisonMode)base[ConfigurationStrings.HostNameComparisonMode]; }
- set { base[ConfigurationStrings.HostNameComparisonMode] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.ListenBacklog, DefaultValue = TcpTransportDefaults.ListenBacklogConst)]
- [IntegerValidator(MinValue = 0)]
- public int ListenBacklog
- {
- get { return (int)base[ConfigurationStrings.ListenBacklog]; }
- set { base[ConfigurationStrings.ListenBacklog] = value; }
- }
- [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.MaxBufferSize, DefaultValue = TransportDefaults.MaxBufferSize)]
- [IntegerValidator(MinValue = 1)]
- public int MaxBufferSize
- {
- get { return (int)base[ConfigurationStrings.MaxBufferSize]; }
- set { base[ConfigurationStrings.MaxBufferSize] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxConnections, DefaultValue = ConnectionOrientedTransportDefaults.MaxPendingConnectionsConst)]
- [IntegerValidator(MinValue = 0)]
- public int MaxConnections
- {
- get { return (int)base[ConfigurationStrings.MaxConnections]; }
- set { base[ConfigurationStrings.MaxConnections] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxReceivedMessageSize, DefaultValue = TransportDefaults.MaxReceivedMessageSize)]
- [LongValidator(MinValue = 1)]
- public long MaxReceivedMessageSize
- {
- get { return (long)base[ConfigurationStrings.MaxReceivedMessageSize]; }
- set { base[ConfigurationStrings.MaxReceivedMessageSize] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.PortSharingEnabled, DefaultValue = TcpTransportDefaults.PortSharingEnabled)]
- public bool PortSharingEnabled
- {
- get { return (bool)base[ConfigurationStrings.PortSharingEnabled]; }
- set { base[ConfigurationStrings.PortSharingEnabled] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.ReaderQuotas)]
- public XmlDictionaryReaderQuotasElement ReaderQuotas
- {
- get { return (XmlDictionaryReaderQuotasElement)base[ConfigurationStrings.ReaderQuotas]; }
- }
- [ConfigurationProperty(ConfigurationStrings.ReliableSession)]
- public StandardBindingOptionalReliableSessionElement ReliableSession
- {
- get { return (StandardBindingOptionalReliableSessionElement)base[ConfigurationStrings.ReliableSession]; }
- }
- [ConfigurationProperty(ConfigurationStrings.Security)]
- public NetTcpSecurityElement Security
- {
- get { return (NetTcpSecurityElement)base[ConfigurationStrings.Security]; }
- }
- protected internal override void InitializeFrom(Binding binding)
- {
- base.InitializeFrom(binding);
- NetTcpBinding nptBinding = (NetTcpBinding)binding;
-
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TransactionFlow, nptBinding.TransactionFlow);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TransferMode, nptBinding.TransferMode);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TransactionProtocol, nptBinding.TransactionProtocol);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.HostNameComparisonMode, nptBinding.HostNameComparisonMode);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferPoolSize, nptBinding.MaxBufferPoolSize);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferSize, nptBinding.MaxBufferSize);
- if (nptBinding.IsMaxConnectionsSet)
- {
- ConfigurationProperty maxConnectionsProperty = this.Properties[ConfigurationStrings.MaxConnections];
- SetPropertyValue(maxConnectionsProperty, nptBinding.MaxConnections, false /*ignore locks*/);
- }
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxReceivedMessageSize, nptBinding.MaxReceivedMessageSize);
- if (nptBinding.IsListenBacklogSet)
- {
- ConfigurationProperty listenBacklogProperty = this.Properties[ConfigurationStrings.ListenBacklog];
- SetPropertyValue(listenBacklogProperty, nptBinding.ListenBacklog, false /*ignore locks*/);
- }
- this.ReliableSession.InitializeFrom(nptBinding.ReliableSession);
- this.Security.InitializeFrom(nptBinding.Security);
- this.ReaderQuotas.InitializeFrom(nptBinding.ReaderQuotas);
- }
- protected override void OnApplyConfiguration(Binding binding)
- {
- NetTcpBinding nptBinding = (NetTcpBinding)binding;
-
- PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;
- nptBinding.TransactionFlow = this.TransactionFlow;
- nptBinding.TransferMode = this.TransferMode;
- nptBinding.TransactionProtocol = this.TransactionProtocol;
- nptBinding.HostNameComparisonMode = this.HostNameComparisonMode;
- if (this.ListenBacklog != TcpTransportDefaults.ListenBacklogConst)
- {
- nptBinding.ListenBacklog = this.ListenBacklog;
- }
- nptBinding.MaxBufferPoolSize = this.MaxBufferPoolSize;
- if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default)
- {
- nptBinding.MaxBufferSize = this.MaxBufferSize;
- }
- if (this.MaxConnections != 0)
- {
- nptBinding.MaxConnections = this.MaxConnections;
- }
- nptBinding.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
- nptBinding.PortSharingEnabled = this.PortSharingEnabled;
- this.ReliableSession.ApplyConfiguration(nptBinding.ReliableSession);
- this.Security.ApplyConfiguration(nptBinding.Security);
- this.ReaderQuotas.ApplyConfiguration(nptBinding.ReaderQuotas);
- }
- }
- }
|