ServiceMetadataPublishingElement.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //------------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------------------------
  4. namespace System.ServiceModel.Configuration
  5. {
  6. using System.Configuration;
  7. using System.ServiceModel.Description;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. public sealed partial class ServiceMetadataPublishingElement : BehaviorExtensionElement
  11. {
  12. public ServiceMetadataPublishingElement()
  13. {
  14. }
  15. [ConfigurationProperty(ConfigurationStrings.ExternalMetadataLocation)]
  16. public Uri ExternalMetadataLocation
  17. {
  18. get { return (Uri)base[ConfigurationStrings.ExternalMetadataLocation]; }
  19. set { base[ConfigurationStrings.ExternalMetadataLocation] = value; }
  20. }
  21. [ConfigurationProperty(ConfigurationStrings.HttpGetEnabled, DefaultValue = false)]
  22. public bool HttpGetEnabled
  23. {
  24. get { return (bool)base[ConfigurationStrings.HttpGetEnabled]; }
  25. set { base[ConfigurationStrings.HttpGetEnabled] = value; }
  26. }
  27. [ConfigurationProperty(ConfigurationStrings.HttpGetUrl)]
  28. public Uri HttpGetUrl
  29. {
  30. get { return (Uri)base[ConfigurationStrings.HttpGetUrl]; }
  31. set { base[ConfigurationStrings.HttpGetUrl] = value; }
  32. }
  33. [ConfigurationProperty(ConfigurationStrings.HttpsGetEnabled, DefaultValue = false)]
  34. public bool HttpsGetEnabled
  35. {
  36. get { return (bool)base[ConfigurationStrings.HttpsGetEnabled]; }
  37. set { base[ConfigurationStrings.HttpsGetEnabled] = value; }
  38. }
  39. [ConfigurationProperty(ConfigurationStrings.HttpsGetUrl)]
  40. public Uri HttpsGetUrl
  41. {
  42. get { return (Uri)base[ConfigurationStrings.HttpsGetUrl]; }
  43. set { base[ConfigurationStrings.HttpsGetUrl] = value; }
  44. }
  45. [ConfigurationProperty(ConfigurationStrings.HttpGetBinding, DefaultValue = "")]
  46. [StringValidator(MinLength = 0)]
  47. public string HttpGetBinding
  48. {
  49. get { return (string)base[ConfigurationStrings.HttpGetBinding]; }
  50. set { base[ConfigurationStrings.HttpGetBinding] = value; }
  51. }
  52. [ConfigurationProperty(ConfigurationStrings.HttpGetBindingConfiguration, DefaultValue = "")]
  53. [StringValidator(MinLength = 0)]
  54. public string HttpGetBindingConfiguration
  55. {
  56. get { return (string)base[ConfigurationStrings.HttpGetBindingConfiguration]; }
  57. set { base[ConfigurationStrings.HttpGetBindingConfiguration] = value; }
  58. }
  59. [ConfigurationProperty(ConfigurationStrings.HttpsGetBinding, DefaultValue = "")]
  60. [StringValidator(MinLength = 0)]
  61. public string HttpsGetBinding
  62. {
  63. get { return (string)base[ConfigurationStrings.HttpsGetBinding]; }
  64. set { base[ConfigurationStrings.HttpsGetBinding] = value; }
  65. }
  66. [ConfigurationProperty(ConfigurationStrings.HttpsGetBindingConfiguration, DefaultValue = "")]
  67. [StringValidator(MinLength = 0)]
  68. public string HttpsGetBindingConfiguration
  69. {
  70. get { return (string)base[ConfigurationStrings.HttpsGetBindingConfiguration]; }
  71. set { base[ConfigurationStrings.HttpsGetBindingConfiguration] = value; }
  72. }
  73. [ConfigurationProperty(ConfigurationStrings.PolicyVersion, DefaultValue = ConfigurationStrings.Default)]
  74. [TypeConverter(typeof(PolicyVersionConverter))]
  75. public PolicyVersion PolicyVersion
  76. {
  77. get { return (PolicyVersion)base[ConfigurationStrings.PolicyVersion]; }
  78. set { base[ConfigurationStrings.PolicyVersion] = value; }
  79. }
  80. public override void CopyFrom(ServiceModelExtensionElement from)
  81. {
  82. base.CopyFrom(from);
  83. ServiceMetadataPublishingElement source = (ServiceMetadataPublishingElement)from;
  84. #pragma warning suppress 56506 //[....]; base.CopyFrom() check for 'from' being null
  85. this.HttpGetEnabled = source.HttpGetEnabled;
  86. this.HttpGetUrl = source.HttpGetUrl;
  87. this.HttpsGetEnabled = source.HttpsGetEnabled;
  88. this.HttpsGetUrl = source.HttpsGetUrl;
  89. this.ExternalMetadataLocation = source.ExternalMetadataLocation;
  90. this.PolicyVersion = source.PolicyVersion;
  91. this.HttpGetBinding = source.HttpGetBinding;
  92. this.HttpGetBindingConfiguration = source.HttpGetBindingConfiguration;
  93. this.HttpsGetBinding = source.HttpsGetBinding;
  94. this.HttpsGetBindingConfiguration = source.HttpsGetBindingConfiguration;
  95. }
  96. protected internal override object CreateBehavior()
  97. {
  98. ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
  99. behavior.HttpGetEnabled = this.HttpGetEnabled;
  100. behavior.HttpGetUrl = this.HttpGetUrl;
  101. behavior.HttpsGetEnabled = this.HttpsGetEnabled;
  102. behavior.HttpsGetUrl = this.HttpsGetUrl;
  103. behavior.ExternalMetadataLocation = this.ExternalMetadataLocation;
  104. behavior.MetadataExporter.PolicyVersion = this.PolicyVersion;
  105. if (!String.IsNullOrEmpty(this.HttpGetBinding))
  106. behavior.HttpGetBinding = ConfigLoader.LookupBinding(this.HttpGetBinding, this.HttpGetBindingConfiguration);
  107. if (!String.IsNullOrEmpty(this.HttpsGetBinding))
  108. behavior.HttpsGetBinding = ConfigLoader.LookupBinding(this.HttpsGetBinding, this.HttpsGetBindingConfiguration);
  109. return behavior;
  110. }
  111. public override Type BehaviorType
  112. {
  113. get { return typeof(ServiceMetadataBehavior); }
  114. }
  115. }
  116. }