首页 > 解决方案 > 在 .NET 代码优先 gRPC 中指定截止日期

问题描述

使用 .NET 的代码优先 gRPC,调用服务时如何指定截止日期?Microsoft 的具有截止日期和取消页面的可靠 gRPC 服务仅包含非代码优先调用的示例。

我的 gRPC 接口通过.NET 的 Code-first gRPC 服务和客户端CallContext指定,但是在该页面上 - 或者在我能找到的任何其他页面上 - 没有关于预期如何使用它的示例。

查看CallContext's 的代码,它可以通过一个ServerCallContext包含截止日期的。然而,这个类是抽象的,我能找到的唯一实现是内部的。

最后,CallContext.Default其中包含 a Deadline,但是这个类是不可变的,所以也没什么帮助。

标签: c#asp.net-coregrpcgrpc-c#

解决方案


就在我发布后,我找到了方法:

var deadline = DateTime.UtcNow.AddSeconds(15);
var context = CallContext.Default.CallOptions.WithDeadline(deadline);

await myService.DoStuffAsync(context);

推荐阅读