2009-08-11 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Tue, 11 Aug 2009 06:45:58 +0000 (06:45 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Tue, 11 Aug 2009 06:45:58 +0000 (06:45 -0000)
* ServiceDebugBehavior.cs, ServiceMetadataBehavior.cs :
  add Binding properties. Properties are now auto.
* ServiceMetadataExtension.cs : take Binding too to build dispatcher.

svn path=/trunk/mcs/; revision=139690

mcs/class/System.ServiceModel/System.ServiceModel.Description/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceDebugBehavior.cs
mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataBehavior.cs
mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs

index 5a62f91c599eb70b7a9296320f8a9d08e4d25fd7..591f2b69415b005b387630f3c8d546be1b76b0f0 100644 (file)
@@ -1,3 +1,9 @@
+2009-08-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ServiceDebugBehavior.cs, ServiceMetadataBehavior.cs :
+         add Binding properties. Properties are now auto.
+       * ServiceMetadataExtension.cs : take Binding too to build dispatcher.
+
 2009-08-10  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ServiceContractGenerator.cs : removed ChannelBase proxy stuff,
index 86aaecc092e54622e77150c02cc2e9dd492ba377..edc8a67385ad7a6f1f3c26082927e5e257ed24f3 100644 (file)
@@ -34,39 +34,23 @@ namespace System.ServiceModel.Description
 {
        public class ServiceDebugBehavior : IServiceBehavior
        {
-               bool inc_details;
-               bool http_help_enabled = true;
-               bool https_help_enabled = true;
-               Uri http_help_url, https_help_url;
-
                public ServiceDebugBehavior ()
                {
                }
 
-               public bool IncludeExceptionDetailInFaults {
-                       get { return inc_details; }
-                       set { inc_details = value; }
-               }
+               public bool IncludeExceptionDetailInFaults { get; set; }
 
-               public bool HttpHelpPageEnabled {
-                       get { return http_help_enabled; }
-                       set { http_help_enabled = value; }
-               }
+               public bool HttpHelpPageEnabled { get; set; }
 
-               public Uri HttpHelpPageUrl {
-                       get { return http_help_url; }
-                       set { http_help_url = value; }
-               }
+               public Uri HttpHelpPageUrl { get; set; }
 
-               public bool HttpsHelpPageEnabled {
-                       get { return https_help_enabled; }
-                       set { https_help_enabled = value; }
-               }
+               public bool HttpsHelpPageEnabled { get; set; }
 
-               public Uri HttpsHelpPageUrl {
-                       get { return https_help_url; }
-                       set { https_help_url = value; }
-               }
+               public Uri HttpsHelpPageUrl { get; set; }
+
+               public Binding HttpHelpPageBinding { get; set; }
+
+               public Binding HttpsHelpPageBinding { get; set; }
 
                void IServiceBehavior.AddBindingParameters (
                        ServiceDescription description,
@@ -90,13 +74,13 @@ namespace System.ServiceModel.Description
                        if (HttpHelpPageEnabled) {
                                Uri uri = serviceHostBase.CreateUri ("http", HttpHelpPageUrl);
                                if (uri != null)
-                                       ServiceMetadataExtension.EnsureServiceMetadataHttpChanelDispatcher (description, serviceHostBase, sme, uri);
+                                       ServiceMetadataExtension.EnsureServiceMetadataHttpChanelDispatcher (description, serviceHostBase, sme, uri, HttpHelpPageBinding);
                        }
 
                        if (HttpsHelpPageEnabled) {
                                Uri uri = serviceHostBase.CreateUri ("https", HttpsHelpPageUrl);
                                if (uri != null)
-                                       ServiceMetadataExtension.EnsureServiceMetadataHttpsChanelDispatcher (description, serviceHostBase, sme, uri);
+                                       ServiceMetadataExtension.EnsureServiceMetadataHttpsChanelDispatcher (description, serviceHostBase, sme, uri, HttpsHelpPageBinding);
                        }
                }
 
index 36f839897120a110eb32b8033170807cb86d811b..dca58b48072a33db10b3560c190fc22e0517aa3e 100644 (file)
@@ -41,45 +41,31 @@ namespace System.ServiceModel.Description
        {
                public const string MexContractName = "IMetadataExchange";
 
-               bool enable_http, enable_https;
-               Uri http_url, https_url, location;
                MetadataExporter exporter;
 
                public ServiceMetadataBehavior ()
                {
                }
 
-               public bool HttpGetEnabled {
-                       get { return enable_http; }
-                       set { enable_http = value; }
-               }
+               public bool HttpGetEnabled { get; set; }
 
-               public bool HttpsGetEnabled {
-                       get { return enable_https; }
-                       set { enable_https = value; }
-               }
+               public bool HttpsGetEnabled { get; set; }
 
                public MetadataExporter MetadataExporter {
                        get { return exporter ?? (exporter = new WsdlExporter ()); }
                        set { exporter = value; }
                }
 
-               public Uri ExternalMetadataLocation {
-                       get { return location; }
-                       set { location = value; }
-               }
+               public Uri ExternalMetadataLocation { get; set; }
 
-               public Uri HttpGetUrl {
-                       get { return http_url; }
-                       set { http_url = value; }
-               }
+               public Uri HttpGetUrl { get; set; }
 
-               public Uri HttpsGetUrl {
-                       get { return https_url; }
-                       set { https_url = value; }
-               }
+               public Uri HttpsGetUrl { get; set; }
+
+               public Binding HttpGetBinding { get; set; }
+
+               public Binding HttpsGetBinding { get; set; }
 
-               [MonoTODO]
                void IServiceBehavior.AddBindingParameters (
                        ServiceDescription description,
                        ServiceHostBase serviceHostBase,
@@ -110,13 +96,13 @@ namespace System.ServiceModel.Description
                        if (HttpGetEnabled) {
                                Uri uri = serviceHostBase.CreateUri ("http", HttpGetUrl);
                                if (uri != null)
-                                       ServiceMetadataExtension.EnsureServiceMetadataHttpChanelDispatcher (description, serviceHostBase, sme, uri);
+                                       ServiceMetadataExtension.EnsureServiceMetadataHttpChanelDispatcher (description, serviceHostBase, sme, uri, HttpGetBinding);
                        }
 
                        if (HttpsGetEnabled) {
                                Uri uri = serviceHostBase.CreateUri ("https", HttpsGetUrl);
                                if (uri != null)
-                                       ServiceMetadataExtension.EnsureServiceMetadataHttpsChanelDispatcher (description, serviceHostBase, sme, uri);
+                                       ServiceMetadataExtension.EnsureServiceMetadataHttpsChanelDispatcher (description, serviceHostBase, sme, uri, HttpsGetBinding);
                        }
                }
 
index 5dc8af1bacd4a99aa5059cb11c42e0f6236ee15a..efb346bdf215a5c6e33817302864be4042ae9e7c 100644 (file)
@@ -44,7 +44,7 @@ using System.Xml.Schema;
 using WSServiceDescription = System.Web.Services.Description.ServiceDescription;
 using WSMessage = System.Web.Services.Description.Message;
 using SMMessage = System.ServiceModel.Channels.Message;
-
+using WCFBinding = System.ServiceModel.Channels.Binding;
 
 namespace System.ServiceModel.Description
 {
@@ -91,14 +91,25 @@ namespace System.ServiceModel.Description
                        return sme;
                }
 
-               internal static void EnsureServiceMetadataHttpChanelDispatcher (ServiceDescription description, ServiceHostBase serviceHostBase, ServiceMetadataExtension sme, Uri uri) {
+               internal static void EnsureServiceMetadataHttpChanelDispatcher (ServiceDescription description, ServiceHostBase serviceHostBase, ServiceMetadataExtension sme, Uri uri, WCFBinding binding)
+               {
+                       EnsureServiceMetadataDispatcher (description, serviceHostBase, sme, uri, binding ?? MetadataExchangeBindings.CreateMexHttpBinding ());
+               }
+
+               internal static void EnsureServiceMetadataHttpsChanelDispatcher (ServiceDescription description, ServiceHostBase serviceHostBase, ServiceMetadataExtension sme, Uri uri, WCFBinding binding)
+               {
+                       // same as http now.
+                       EnsureServiceMetadataDispatcher (description, serviceHostBase, sme, uri, binding ?? MetadataExchangeBindings.CreateMexHttpsBinding ());
+               }
 
+               static void EnsureServiceMetadataDispatcher (ServiceDescription description, ServiceHostBase serviceHostBase, ServiceMetadataExtension sme, Uri uri, WCFBinding binding)
+               {
                        if (sme._serviceMetadataChanelDispatchers == null)
                                sme._serviceMetadataChanelDispatchers = new Dictionary<Uri, ChannelDispatcherBase> ();
                        else if (sme._serviceMetadataChanelDispatchers.ContainsKey (uri))
                                return;
 
-                       CustomBinding cb = new CustomBinding (new BasicHttpBinding ())
+                       CustomBinding cb = new CustomBinding (binding)
                        {
                                Name = ServiceMetadataBehaviorHttpGetBinding,
                        };
@@ -117,10 +128,6 @@ namespace System.ServiceModel.Description
                        serviceHostBase.ChannelDispatchers.Add (channelDispatcher);
                }
 
-               internal static void EnsureServiceMetadataHttpsChanelDispatcher (ServiceDescription description, ServiceHostBase serviceHostBase, ServiceMetadataExtension sme, Uri uri) {
-                       throw new NotImplementedException ();
-               }
-
                void IExtension<ServiceHostBase>.Attach (ServiceHostBase owner)
                {
                        this.owner = owner;