Updates referencesource to .NET 4.7
[mono.git] / mcs / class / referencesource / System.ServiceModel / System / ServiceModel / Configuration / TextMessageEncodingElement.cs
1 //------------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //------------------------------------------------------------------------------
4
5 namespace System.ServiceModel.Configuration
6 {
7     using System.ComponentModel;
8     using System.Configuration;
9     using System.Globalization;
10     using System.Text;
11     using System.ServiceModel.Channels;
12
13     public sealed partial class TextMessageEncodingElement : BindingElementExtensionElement
14     {
15         public TextMessageEncodingElement()
16         {
17         }
18
19         public override void ApplyConfiguration(BindingElement bindingElement)
20         {
21             base.ApplyConfiguration(bindingElement);
22             TextMessageEncodingBindingElement binding = (TextMessageEncodingBindingElement)bindingElement;
23             binding.MessageVersion = this.MessageVersion;
24             binding.WriteEncoding = this.WriteEncoding;
25             binding.MaxReadPoolSize = this.MaxReadPoolSize;
26             binding.MaxWritePoolSize = this.MaxWritePoolSize;
27 #pragma warning suppress 56506 //Microsoft; base.ApplyConfiguration() checks for 'binding' being null
28             this.ReaderQuotas.ApplyConfiguration(binding.ReaderQuotas);
29         }
30
31         public override Type BindingElementType
32         {
33             get { return typeof(TextMessageEncodingBindingElement); }
34         }
35
36         public override void CopyFrom(ServiceModelExtensionElement from)
37         {
38             base.CopyFrom(from);
39
40             TextMessageEncodingElement source = (TextMessageEncodingElement)from;
41 #pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
42             this.MessageVersion = source.MessageVersion;
43             this.WriteEncoding = source.WriteEncoding;
44             this.MaxReadPoolSize = source.MaxReadPoolSize;
45             this.MaxWritePoolSize = source.MaxWritePoolSize;
46         }
47
48         protected internal override BindingElement CreateBindingElement()
49         {
50             TextMessageEncodingBindingElement binding = new TextMessageEncodingBindingElement();
51             this.ApplyConfiguration(binding);
52             return binding;
53         }
54
55         protected internal override void InitializeFrom(BindingElement bindingElement)
56         {
57             base.InitializeFrom(bindingElement);
58             TextMessageEncodingBindingElement binding = (TextMessageEncodingBindingElement)bindingElement;
59             SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MessageVersion, binding.MessageVersion);
60             SetPropertyValueIfNotDefaultValue(ConfigurationStrings.WriteEncoding, binding.WriteEncoding);
61             SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxReadPoolSize, binding.MaxReadPoolSize);
62             SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxWritePoolSize, binding.MaxWritePoolSize);
63             this.ReaderQuotas.InitializeFrom(binding.ReaderQuotas);
64         }
65
66         [ConfigurationProperty(ConfigurationStrings.MaxReadPoolSize, DefaultValue = EncoderDefaults.MaxReadPoolSize)]
67         [IntegerValidator(MinValue = 1)]
68         public int MaxReadPoolSize
69         {
70             get { return (int)base[ConfigurationStrings.MaxReadPoolSize]; }
71             set { base[ConfigurationStrings.MaxReadPoolSize] = value; }
72         }
73
74         [ConfigurationProperty(ConfigurationStrings.MaxWritePoolSize, DefaultValue = EncoderDefaults.MaxWritePoolSize)]
75         [IntegerValidator(MinValue = 1)]
76         public int MaxWritePoolSize
77         {
78             get { return (int)base[ConfigurationStrings.MaxWritePoolSize]; }
79             set { base[ConfigurationStrings.MaxWritePoolSize] = value; }
80         }
81
82         [ConfigurationProperty(ConfigurationStrings.MessageVersion, DefaultValue = TextEncoderDefaults.MessageVersionString)]
83         [TypeConverter(typeof(MessageVersionConverter))]
84         public MessageVersion MessageVersion
85         {
86             get { return (MessageVersion)base[ConfigurationStrings.MessageVersion]; }
87             set { base[ConfigurationStrings.MessageVersion] = value; }
88         }
89
90         [ConfigurationProperty(ConfigurationStrings.ReaderQuotas)]
91         public XmlDictionaryReaderQuotasElement ReaderQuotas
92         {
93             get { return (XmlDictionaryReaderQuotasElement) base[ConfigurationStrings.ReaderQuotas]; }
94         }
95
96         [ConfigurationProperty(ConfigurationStrings.WriteEncoding, DefaultValue = TextEncoderDefaults.EncodingString)]
97         [TypeConverter(typeof(EncodingConverter))]
98         public Encoding WriteEncoding
99         {
100             get { return (Encoding)base[ConfigurationStrings.WriteEncoding]; }
101             set { base[ConfigurationStrings.WriteEncoding] = value; }
102         }
103     }
104 }
105
106
107