private async Task <T> ReceiveAsync <T>() where T : TBase, new() { TMessage msg = await _inProtocol.ReadMessageBeginAsync(); if (msg.Type == TMessageType.Exception) { TApplicationException x = await TApplicationException.ReadAsync(_inProtocol, CancellationToken.None); await _inProtocol.ReadMessageEndAsync(); throw x; } Result <T> result = new Result <T>(); await result.ReadAsync(_inProtocol, CancellationToken.None); await _inProtocol.ReadMessageEndAsync(); if (result._isSet.success) { return(result.Success); } throw new TApplicationException(TApplicationException.ExceptionType.MissingResult, "GetResultSetMetadata failed: unknown result"); }
public override async Task <TMessage> ReadMessageBeginAsync(CancellationToken cancellationToken) { return(await _wrappedProtocol.ReadMessageBeginAsync(cancellationToken).ConfigureAwait(false)); }