| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- //------------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
- namespace System.ServiceModel.Configuration
- {
- using System.ComponentModel;
- using System.Configuration;
- using System.Runtime;
- using System.ServiceModel;
- using System.ServiceModel.Channels;
- public abstract partial class ConnectionOrientedTransportElement : TransportElement
- {
- internal ConnectionOrientedTransportElement()
- {
- }
- [ConfigurationProperty(ConfigurationStrings.ConnectionBufferSize, DefaultValue = ConnectionOrientedTransportDefaults.ConnectionBufferSize)]
- [IntegerValidator(MinValue = 1)]
- public int ConnectionBufferSize
- {
- get { return (int)base[ConfigurationStrings.ConnectionBufferSize]; }
- set { base[ConfigurationStrings.ConnectionBufferSize] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.HostNameComparisonMode, DefaultValue = ConnectionOrientedTransportDefaults.HostNameComparisonMode)]
- [ServiceModelEnumValidatorAttribute(typeof(HostNameComparisonModeHelper))]
- public HostNameComparisonMode HostNameComparisonMode
- {
- get { return (HostNameComparisonMode)base[ConfigurationStrings.HostNameComparisonMode]; }
- set { base[ConfigurationStrings.HostNameComparisonMode] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.ChannelInitializationTimeout, DefaultValue = ConnectionOrientedTransportDefaults.ChannelInitializationTimeoutString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanOneTick)]
- public TimeSpan ChannelInitializationTimeout
- {
- get { return (TimeSpan)base[ConfigurationStrings.ChannelInitializationTimeout]; }
- set { base[ConfigurationStrings.ChannelInitializationTimeout] = 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.MaxPendingConnections, DefaultValue = ConnectionOrientedTransportDefaults.MaxPendingConnectionsConst)]
- [IntegerValidator(MinValue = 0)]
- public int MaxPendingConnections
- {
- get { return (int)base[ConfigurationStrings.MaxPendingConnections]; }
- set { base[ConfigurationStrings.MaxPendingConnections] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxOutputDelay, DefaultValue = ConnectionOrientedTransportDefaults.MaxOutputDelayString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan MaxOutputDelay
- {
- get { return (TimeSpan)base[ConfigurationStrings.MaxOutputDelay]; }
- set { base[ConfigurationStrings.MaxOutputDelay] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxPendingAccepts, DefaultValue = ConnectionOrientedTransportDefaults.MaxPendingAcceptsConst)]
- [IntegerValidator(MinValue = 0)]
- public int MaxPendingAccepts
- {
- get { return (int)base[ConfigurationStrings.MaxPendingAccepts]; }
- set { base[ConfigurationStrings.MaxPendingAccepts] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.TransferMode, DefaultValue = ConnectionOrientedTransportDefaults.TransferMode)]
- [ServiceModelEnumValidator(typeof(TransferModeHelper))]
- public TransferMode TransferMode
- {
- get { return (TransferMode)base[ConfigurationStrings.TransferMode]; }
- set { base[ConfigurationStrings.TransferMode] = value; }
- }
- public override void ApplyConfiguration(BindingElement bindingElement)
- {
- base.ApplyConfiguration(bindingElement);
- ConnectionOrientedTransportBindingElement binding = (ConnectionOrientedTransportBindingElement)bindingElement;
- binding.ConnectionBufferSize = this.ConnectionBufferSize;
- binding.HostNameComparisonMode = this.HostNameComparisonMode;
- binding.ChannelInitializationTimeout = this.ChannelInitializationTimeout;
- PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;
- if (propertyInfo[ConfigurationStrings.MaxBufferSize].ValueOrigin != PropertyValueOrigin.Default)
- {
- binding.MaxBufferSize = this.MaxBufferSize;
- }
- if (this.MaxPendingConnections != ConnectionOrientedTransportDefaults.MaxPendingConnectionsConst)
- {
- binding.MaxPendingConnections = this.MaxPendingConnections;
- }
- binding.MaxOutputDelay = this.MaxOutputDelay;
- if (this.MaxPendingAccepts != ConnectionOrientedTransportDefaults.MaxPendingAcceptsConst)
- {
- binding.MaxPendingAccepts = this.MaxPendingAccepts;
- }
- binding.TransferMode = this.TransferMode;
- }
- public override void CopyFrom(ServiceModelExtensionElement from)
- {
- base.CopyFrom(from);
- ConnectionOrientedTransportElement source = (ConnectionOrientedTransportElement)from;
- #pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
- this.ConnectionBufferSize = source.ConnectionBufferSize;
- this.HostNameComparisonMode = source.HostNameComparisonMode;
- this.ChannelInitializationTimeout = source.ChannelInitializationTimeout;
- this.MaxBufferSize = source.MaxBufferSize;
- this.MaxPendingConnections = source.MaxPendingConnections;
- this.MaxOutputDelay = source.MaxOutputDelay;
- this.MaxPendingAccepts = source.MaxPendingAccepts;
- this.TransferMode = source.TransferMode;
- }
- protected internal override void InitializeFrom(BindingElement bindingElement)
- {
- base.InitializeFrom(bindingElement);
- ConnectionOrientedTransportBindingElement binding = (ConnectionOrientedTransportBindingElement)bindingElement;
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ConnectionBufferSize, binding.ConnectionBufferSize);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.HostNameComparisonMode, binding.HostNameComparisonMode);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ChannelInitializationTimeout, binding.ChannelInitializationTimeout);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferSize, binding.MaxBufferSize);
- if (binding.IsMaxPendingConnectionsSet)
- {
- ConfigurationProperty maxPendingConnectionsProperty = this.Properties[ConfigurationStrings.MaxPendingConnections];
- SetPropertyValue(maxPendingConnectionsProperty, binding.MaxPendingConnections, /*ignoreLocks = */ false);
- }
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxOutputDelay, binding.MaxOutputDelay);
- if (binding.IsMaxPendingAcceptsSet)
- {
- ConfigurationProperty maxPendingAcceptsProperty = this.Properties[ConfigurationStrings.MaxPendingAccepts];
- SetPropertyValue(maxPendingAcceptsProperty, binding.MaxPendingAccepts, /*ignoreLocks = */ false);
- }
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TransferMode, binding.TransferMode);
- }
- }
- }
|