protected override IAsyncResult OnBeginOfflineAnnouncement(
     DiscoveryMessageSequence messageSequence, EndpointDiscoveryMetadata endpointDiscoveryMetadata,
     AsyncCallback callback, object state)
 {
     implementation.RemoveService(endpointDiscoveryMetadata);
     return(new SynchronousResult(callback, state));
 }
 private void RemoveService(ServiceHost serviceHost, EndpointDiscoveryMetadata endpoint)
 {
     if (IsSelfDiscovery(serviceHost, endpoint) == false)
     {
         serviceCatalog.RemoveService(endpoint);
     }
 }