NetHttpBindingElement.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // <copyright>
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. // </copyright>
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.ComponentModel;
  7. using System.Configuration;
  8. using System.Runtime;
  9. using System.ServiceModel;
  10. using System.ServiceModel.Channels;
  11. /// <summary>
  12. /// NetHttpBindingElement for NetHttpBinding
  13. /// </summary>
  14. public partial class NetHttpBindingElement : HttpBindingBaseElement
  15. {
  16. public NetHttpBindingElement(string name)
  17. : base(name)
  18. {
  19. }
  20. public NetHttpBindingElement()
  21. : this(null)
  22. {
  23. }
  24. [ConfigurationProperty(ConfigurationStrings.MessageEncoding, DefaultValue = NetHttpBindingDefaults.MessageEncoding)]
  25. [ServiceModelEnumValidator(typeof(NetHttpMessageEncodingHelper))]
  26. public NetHttpMessageEncoding MessageEncoding
  27. {
  28. get { return (NetHttpMessageEncoding)base[ConfigurationStrings.MessageEncoding]; }
  29. set { base[ConfigurationStrings.MessageEncoding] = value; }
  30. }
  31. [ConfigurationProperty(ConfigurationStrings.ReliableSession)]
  32. public StandardBindingOptionalReliableSessionElement ReliableSession
  33. {
  34. get { return (StandardBindingOptionalReliableSessionElement)base[ConfigurationStrings.ReliableSession]; }
  35. }
  36. [ConfigurationProperty(ConfigurationStrings.Security)]
  37. public BasicHttpSecurityElement Security
  38. {
  39. get { return (BasicHttpSecurityElement)base[ConfigurationStrings.Security]; }
  40. }
  41. [System.Diagnostics.CodeAnalysis.SuppressMessage(FxCop.Category.Configuration, "Configuration104",
  42. Justification = "Don't need a validator for this strong typed element.")]
  43. [ConfigurationProperty(ConfigurationStrings.WebSocketSettingsSectionName)]
  44. public NetHttpWebSocketTransportSettingsElement WebSocketSettings
  45. {
  46. get { return (NetHttpWebSocketTransportSettingsElement)base[ConfigurationStrings.WebSocketSettingsSectionName]; }
  47. set { base[ConfigurationStrings.WebSocketSettingsSectionName] = value; }
  48. }
  49. protected override Type BindingElementType
  50. {
  51. get { return typeof(NetHttpBinding); }
  52. }
  53. protected internal override void InitializeFrom(Binding binding)
  54. {
  55. base.InitializeFrom(binding);
  56. NetHttpBinding netHttpBinding = (NetHttpBinding)binding;
  57. SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MessageEncoding, netHttpBinding.MessageEncoding);
  58. this.WebSocketSettings.InitializeFrom(netHttpBinding.WebSocketSettings);
  59. this.ReliableSession.InitializeFrom(netHttpBinding.ReliableSession);
  60. this.Security.InitializeFrom(netHttpBinding.Security);
  61. }
  62. protected override void OnApplyConfiguration(Binding binding)
  63. {
  64. base.OnApplyConfiguration(binding);
  65. NetHttpBinding netHttpBinding = (NetHttpBinding)binding;
  66. netHttpBinding.MessageEncoding = this.MessageEncoding;
  67. this.WebSocketSettings.ApplyConfiguration(netHttpBinding.WebSocketSettings);
  68. this.ReliableSession.ApplyConfiguration(netHttpBinding.ReliableSession);
  69. this.Security.ApplyConfiguration(netHttpBinding.Security);
  70. }
  71. }
  72. }