NetMsmqBindingElement.cs 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------------------------
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.Configuration;
  7. using System.ServiceModel;
  8. using System.Globalization;
  9. using System.ServiceModel.Security;
  10. using System.ServiceModel.Channels;
  11. using System.Net.Security;
  12. public partial class NetMsmqBindingElement : MsmqBindingElementBase
  13. {
  14. public NetMsmqBindingElement(string name)
  15. : base(name)
  16. {
  17. }
  18. public NetMsmqBindingElement()
  19. : this(null)
  20. {
  21. }
  22. protected override Type BindingElementType
  23. {
  24. get { return typeof(NetMsmqBinding); }
  25. }
  26. [ConfigurationProperty(ConfigurationStrings.QueueTransferProtocol, DefaultValue = MsmqDefaults.QueueTransferProtocol)]
  27. [ServiceModelEnumValidator(typeof(QueueTransferProtocolHelper))]
  28. public QueueTransferProtocol QueueTransferProtocol
  29. {
  30. get { return (QueueTransferProtocol)base[ConfigurationStrings.QueueTransferProtocol]; }
  31. set { base[ConfigurationStrings.QueueTransferProtocol] = value; }
  32. }
  33. [ConfigurationProperty(ConfigurationStrings.ReaderQuotas)]
  34. public XmlDictionaryReaderQuotasElement ReaderQuotas
  35. {
  36. get { return (XmlDictionaryReaderQuotasElement)base[ConfigurationStrings.ReaderQuotas]; }
  37. }
  38. [ConfigurationProperty(ConfigurationStrings.MaxBufferPoolSize, DefaultValue = TransportDefaults.MaxBufferPoolSize)]
  39. [LongValidator(MinValue = 0)]
  40. public long MaxBufferPoolSize
  41. {
  42. get { return (long)base[ConfigurationStrings.MaxBufferPoolSize]; }
  43. set { base[ConfigurationStrings.MaxBufferPoolSize] = value; }
  44. }
  45. [ConfigurationProperty(ConfigurationStrings.Security)]
  46. public NetMsmqSecurityElement Security
  47. {
  48. get { return (NetMsmqSecurityElement)base[ConfigurationStrings.Security]; }
  49. }
  50. [ConfigurationProperty(ConfigurationStrings.UseActiveDirectory, DefaultValue = MsmqDefaults.UseActiveDirectory)]
  51. public bool UseActiveDirectory
  52. {
  53. get { return (bool)base[ConfigurationStrings.UseActiveDirectory]; }
  54. set { base[ConfigurationStrings.UseActiveDirectory] = value; }
  55. }
  56. protected internal override void InitializeFrom(Binding binding)
  57. {
  58. base.InitializeFrom(binding);
  59. NetMsmqBinding npmBinding = (NetMsmqBinding)binding;
  60. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxBufferPoolSize, npmBinding.MaxBufferPoolSize);
  61. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.QueueTransferProtocol, npmBinding.QueueTransferProtocol);
  62. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.UseActiveDirectory, npmBinding.UseActiveDirectory);
  63. this.Security.InitializeFrom(npmBinding.Security);
  64. this.ReaderQuotas.InitializeFrom(npmBinding.ReaderQuotas);
  65. }
  66. protected override void OnApplyConfiguration(Binding binding)
  67. {
  68. base.OnApplyConfiguration(binding);
  69. NetMsmqBinding npmBinding = (NetMsmqBinding)binding;
  70. npmBinding.MaxBufferPoolSize = this.MaxBufferPoolSize;
  71. npmBinding.QueueTransferProtocol = this.QueueTransferProtocol;
  72. npmBinding.UseActiveDirectory = this.UseActiveDirectory;
  73. this.Security.ApplyConfiguration(npmBinding.Security);
  74. this.ReaderQuotas.ApplyConfiguration(npmBinding.ReaderQuotas);
  75. }
  76. }
  77. }