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 sealed partial class BinaryMessageEncodingElement
: BindingElementExtensionElement
12 public BinaryMessageEncodingElement()
16 public override Type BindingElementType
18 get { return typeof(BinaryMessageEncodingBindingElement); }
21 [ConfigurationProperty(ConfigurationStrings
.MaxReadPoolSize
, DefaultValue
= EncoderDefaults
.MaxReadPoolSize
)]
22 [IntegerValidator(MinValue
= 1)]
23 public int MaxReadPoolSize
25 get { return (int)base[ConfigurationStrings.MaxReadPoolSize]; }
26 set { base[ConfigurationStrings.MaxReadPoolSize] = value; }
29 [ConfigurationProperty(ConfigurationStrings
.MaxWritePoolSize
, DefaultValue
= EncoderDefaults
.MaxWritePoolSize
)]
30 [IntegerValidator(MinValue
= 1)]
31 public int MaxWritePoolSize
33 get { return (int)base[ConfigurationStrings.MaxWritePoolSize]; }
34 set { base[ConfigurationStrings.MaxWritePoolSize] = value; }
37 [ConfigurationProperty(ConfigurationStrings
.MaxSessionSize
, DefaultValue
= BinaryEncoderDefaults
.MaxSessionSize
)]
38 [IntegerValidator(MinValue
= 0)]
39 public int MaxSessionSize
41 get { return (int)base[ConfigurationStrings.MaxSessionSize]; }
42 set { base[ConfigurationStrings.MaxSessionSize] = value; }
45 [ConfigurationProperty(ConfigurationStrings
.ReaderQuotas
)]
46 public XmlDictionaryReaderQuotasElement ReaderQuotas
48 get { return (XmlDictionaryReaderQuotasElement) base[ConfigurationStrings.ReaderQuotas]; }
51 [ConfigurationProperty(ConfigurationStrings
.CompressionFormat
, DefaultValue
= EncoderDefaults
.DefaultCompressionFormat
)]
52 [ServiceModelEnumValidator(typeof(CompressionFormatHelper
))]
53 public CompressionFormat CompressionFormat
55 get { return (CompressionFormat)base[ConfigurationStrings.CompressionFormat]; }
56 set { base[ConfigurationStrings.CompressionFormat] = value; }
59 public override void ApplyConfiguration(BindingElement bindingElement
)
61 base.ApplyConfiguration(bindingElement
);
62 BinaryMessageEncodingBindingElement binding
= (BinaryMessageEncodingBindingElement
)bindingElement
;
63 binding
.MaxSessionSize
= this.MaxSessionSize
;
64 binding
.MaxReadPoolSize
= this.MaxReadPoolSize
;
65 binding
.MaxWritePoolSize
= this.MaxWritePoolSize
;
66 #pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration() checks for 'binding' being null
67 this.ReaderQuotas
.ApplyConfiguration(binding
.ReaderQuotas
);
68 binding
.CompressionFormat
= this.CompressionFormat
;
71 public override void CopyFrom(ServiceModelExtensionElement
from)
75 BinaryMessageEncodingElement source
= (BinaryMessageEncodingElement
)from;
76 #pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
77 this.MaxSessionSize
= source
.MaxSessionSize
;
78 this.MaxReadPoolSize
= source
.MaxReadPoolSize
;
79 this.MaxWritePoolSize
= source
.MaxWritePoolSize
;
80 this.CompressionFormat
= source
.CompressionFormat
;
83 protected internal override void InitializeFrom(BindingElement bindingElement
)
85 base.InitializeFrom(bindingElement
);
86 BinaryMessageEncodingBindingElement binding
= (BinaryMessageEncodingBindingElement
)bindingElement
;
87 SetPropertyValueIfNotDefaultValue(ConfigurationStrings
.MaxSessionSize
, binding
.MaxSessionSize
);
88 SetPropertyValueIfNotDefaultValue(ConfigurationStrings
.MaxReadPoolSize
, binding
.MaxReadPoolSize
);
89 SetPropertyValueIfNotDefaultValue(ConfigurationStrings
.MaxWritePoolSize
, binding
.MaxWritePoolSize
);
90 this.ReaderQuotas
.InitializeFrom(binding
.ReaderQuotas
);
91 SetPropertyValueIfNotDefaultValue(ConfigurationStrings
.CompressionFormat
, binding
.CompressionFormat
);
94 protected internal override BindingElement
CreateBindingElement()
96 BinaryMessageEncodingBindingElement binding
= new BinaryMessageEncodingBindingElement();
97 this.ApplyConfiguration(binding
);