TextMessageEncodingElement.cs 4.6 KB

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