我正在使用 gRPC 构建一个 .NetCore 应用程序。
我在构建代码来处理流结果时遇到问题。
考虑以下 protobuf 定义:
service SampleService
{
rpc RegisterClient(G_ClientRequest) returns (stream G_ClientResponse) { }
}
这是从流中读取结果的代码片段:
public ConnectToClient()
{
var results = Client.RegisterClient(new G_ClientRequest()
{
ClientName = "Foo",
DateTimeStamp = new Google.Protobuf.WellKnownTypes.Timestamp()
});
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
foreach (var result in results.ResponseStream.ReadAllAsync(cancellationToken: cts.Token))
{
}
}
我一直在谷歌搜索,发现类似于我上面处理流结果的代码的东西。但是代码无法编译。 ReadAllAsync()在IAsyncStreamReader的接口定义中不可用。
.Net Core 中是否不提供/支持此功能?我正在使用 Grpc (2.38) 的最新稳定版本。
如果这对我不可用,如何从.Net Core 中的ResponseStream检索结果?
谢谢,约翰B