ongoing AnnouncementService work.
[mono.git] / mcs / class / System.ServiceModel.Discovery / System.ServiceModel.Discovery / DiscoveryServiceExtension.cs
index a55f1450c13b5daaf6ae4002dabd81414d961839..89f63b28bfd7b2febbd6495b2eeb8042240cb0a8 100755 (executable)
@@ -8,17 +8,30 @@ using System.ServiceModel.Dispatcher;
 
 namespace System.ServiceModel.Discovery
 {
-       [MonoTODO]
+       // This class is for custom implementation.
+       // It is used by ServiceDiscoveryBehavior to find an extension of this
+       // type, to call GetDiscoveryService().
+       // See http://msdn.microsoft.com/en-us/library/system.servicemodel.discovery.discoveryserviceextension.aspx
        public abstract class DiscoveryServiceExtension : IExtension<ServiceHostBase>
        {
                protected abstract DiscoveryService GetDiscoveryService ();
 
                void IExtension<ServiceHostBase>.Attach (ServiceHostBase owner)
                {
+                       // FIXME: use it somewhere
+                       GetDiscoveryService ();
                }
 
                void IExtension<ServiceHostBase>.Detach (ServiceHostBase owner)
                {
                }
+
+               internal class DefaultDiscoveryServiceExtension : DiscoveryServiceExtension
+               {
+                       protected override DiscoveryService GetDiscoveryService ()
+                       {
+                               return new DefaultDiscoveryService ();
+                       }
+               }
        }
 }