public MessagePackObject EndCall( IAsyncResult asyncResult )
{
this.VerifyIsNotDisposed();
var requestAsyncResult = AsyncResult.Verify<RequestMessageAsyncResult>( asyncResult, this );
requestAsyncResult.WaitForCompletion();
requestAsyncResult.Finish();
var result = requestAsyncResult.Result;
Contract.Assert( result != null );
return result.Value;
}