diff options
Diffstat (limited to 'mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs')
-rw-r--r-- | mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs b/mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs index 5dc8af1bacd..efb346bdf21 100644 --- a/mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs +++ b/mcs/class/System.ServiceModel/System.ServiceModel.Description/ServiceMetadataExtension.cs @@ -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; |