TransportElement.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------------------------
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.Configuration;
  7. using System.ServiceModel.Channels;
  8. public abstract partial class TransportElement : BindingElementExtensionElement
  9. {
  10. protected TransportElement()
  11. {
  12. }
  13. public override void ApplyConfiguration(BindingElement bindingElement)
  14. {
  15. base.ApplyConfiguration(bindingElement);
  16. TransportBindingElement binding = (TransportBindingElement)bindingElement;
  17. binding.ManualAddressing = this.ManualAddressing;
  18. binding.MaxBufferPoolSize = this.MaxBufferPoolSize;
  19. binding.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
  20. }
  21. public override void CopyFrom(ServiceModelExtensionElement from)
  22. {
  23. base.CopyFrom(from);
  24. TransportElement source = (TransportElement)from;
  25. #pragma warning suppress 56506 // [....], base.CopyFrom() validates the argument
  26. this.ManualAddressing = source.ManualAddressing;
  27. this.MaxBufferPoolSize = source.MaxBufferPoolSize;
  28. this.MaxReceivedMessageSize = source.MaxReceivedMessageSize;
  29. }
  30. protected internal override BindingElement CreateBindingElement()
  31. {
  32. TransportBindingElement binding = this.CreateDefaultBindingElement();
  33. this.ApplyConfiguration(binding);
  34. return binding;
  35. }
  36. protected abstract TransportBindingElement CreateDefaultBindingElement();
  37. protected internal override void InitializeFrom(BindingElement bindingElement)
  38. {
  39. base.InitializeFrom(bindingElement);
  40. TransportBindingElement binding = (TransportBindingElement)bindingElement;
  41. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ManualAddressing, binding.ManualAddressing);
  42. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferPoolSize, binding.MaxBufferPoolSize);
  43. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxReceivedMessageSize, binding.MaxReceivedMessageSize);
  44. }
  45. [ConfigurationProperty(ConfigurationStrings.ManualAddressing, DefaultValue = false)]
  46. public bool ManualAddressing
  47. {
  48. get { return (bool)base[ConfigurationStrings.ManualAddressing]; }
  49. set { base[ConfigurationStrings.ManualAddressing] = value; }
  50. }
  51. [ConfigurationProperty(ConfigurationStrings.MaxBufferPoolSize, DefaultValue = TransportDefaults.MaxBufferPoolSize)]
  52. [LongValidator(MinValue = 1)]
  53. public long MaxBufferPoolSize
  54. {
  55. get { return (long)base[ConfigurationStrings.MaxBufferPoolSize]; }
  56. set { base[ConfigurationStrings.MaxBufferPoolSize] = value; }
  57. }
  58. [ConfigurationProperty(ConfigurationStrings.MaxReceivedMessageSize, DefaultValue = TransportDefaults.MaxReceivedMessageSize)]
  59. [LongValidator(MinValue = 1)]
  60. public long MaxReceivedMessageSize
  61. {
  62. get { return (long)base[ConfigurationStrings.MaxReceivedMessageSize]; }
  63. set { base[ConfigurationStrings.MaxReceivedMessageSize] = value; }
  64. }
  65. }
  66. }