Updates referencesource to .NET 4.7
[mono-project.git] / mcs / class / referencesource / System.ServiceModel / System / ServiceModel / Configuration / BinaryMessageEncodingElement.cs
blob94912a949e8694639da8258c0452ccec930fefec
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)
73 base.CopyFrom(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);
98 return binding;