1 //------------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //------------------------------------------------------------------------------
5 namespace System.ServiceModel.Configuration
7 using System.Configuration;
8 using System.ServiceModel.Channels;
10 public abstract partial class TransportElement : BindingElementExtensionElement
12 protected TransportElement()
16 public override void ApplyConfiguration(BindingElement bindingElement)
18 base.ApplyConfiguration(bindingElement);
19 TransportBindingElement binding = (TransportBindingElement)bindingElement;
20 binding.ManualAddressing = this.ManualAddressing;
21 binding.MaxBufferPoolSize = this.MaxBufferPoolSize;
22 binding.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
25 public override void CopyFrom(ServiceModelExtensionElement from)
29 TransportElement source = (TransportElement)from;
30 #pragma warning suppress 56506 // Microsoft, base.CopyFrom() validates the argument
31 this.ManualAddressing = source.ManualAddressing;
32 this.MaxBufferPoolSize = source.MaxBufferPoolSize;
33 this.MaxReceivedMessageSize = source.MaxReceivedMessageSize;
36 protected internal override BindingElement CreateBindingElement()
38 TransportBindingElement binding = this.CreateDefaultBindingElement();
39 this.ApplyConfiguration(binding);
43 protected abstract TransportBindingElement CreateDefaultBindingElement();
45 protected internal override void InitializeFrom(BindingElement bindingElement)
47 base.InitializeFrom(bindingElement);
48 TransportBindingElement binding = (TransportBindingElement)bindingElement;
49 SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ManualAddressing, binding.ManualAddressing);
50 SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferPoolSize, binding.MaxBufferPoolSize);
51 SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxReceivedMessageSize, binding.MaxReceivedMessageSize);
54 [ConfigurationProperty(ConfigurationStrings.ManualAddressing, DefaultValue = false)]
55 public bool ManualAddressing
57 get { return (bool)base[ConfigurationStrings.ManualAddressing]; }
58 set { base[ConfigurationStrings.ManualAddressing] = value; }
61 [ConfigurationProperty(ConfigurationStrings.MaxBufferPoolSize, DefaultValue = TransportDefaults.MaxBufferPoolSize)]
62 [LongValidator(MinValue = 1)]
63 public long MaxBufferPoolSize
65 get { return (long)base[ConfigurationStrings.MaxBufferPoolSize]; }
66 set { base[ConfigurationStrings.MaxBufferPoolSize] = value; }
69 [ConfigurationProperty(ConfigurationStrings.MaxReceivedMessageSize, DefaultValue = TransportDefaults.MaxReceivedMessageSize)]
70 [LongValidator(MinValue = 1)]
71 public long MaxReceivedMessageSize
73 get { return (long)base[ConfigurationStrings.MaxReceivedMessageSize]; }
74 set { base[ConfigurationStrings.MaxReceivedMessageSize] = value; }