public override void EndReply (IAsyncResult result)
{
if (result == null)
throw new ArgumentNullException ("result");
if (reply_delegate == null)
throw new InvalidOperationException ("reply operation has not started");
reply_delegate.EndInvoke (result);
}