/// <summary>
 /// Override this method to handle the completion of an online announcement message.
 /// </summary>
 /// <param name="result">A reference to the completed asynchronous operation.</param>
 protected override void OnEndOnlineAnnouncement(IAsyncResult result)
 {
     CompletedAsyncResult.End(result);
 }
 /// <summary>
 /// Override this method to handle the completion of a resolve operation.
 /// </summary>
 /// <param name="result">A reference to the completed asynchronous operation.</param>
 /// <returns>
 /// Endpoint discovery metadata for the resolved service.
 /// </returns>
 protected override EndpointDiscoveryMetadata OnEndResolve(IAsyncResult result)
 {
     return(CompletedAsyncResult <EndpointDiscoveryMetadata> .End(result));
 }