コード例 #1
0
        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");
        }
コード例 #2
0
 public override async Task ReadMessageEndAsync(CancellationToken cancellationToken)
 {
     await _wrappedProtocol.ReadMessageEndAsync(cancellationToken).ConfigureAwait(false);
 }