按照.NET 中的 gRPC 客户端工厂集成,我可以像这样注册一个 gRPC 客户端:
builder.Services.AddGrpcClient<Greeter.GreeterClient>(o =>
{
o.Address = new Uri("https://localhost:5001");
});
现在我想为与该客户的所有通话设置一个通用截止时间。可能像这样:
int deadline = ReadFromConfig();
builder.Services.AddGrpcClient<Greeter.GreeterClient>(o =>
{
o.Address = new Uri("https://localhost:5001");
o.CallOptionsActions.Add(o =>
o.CallOptions.Deadline = DateTime.UtcNow.AddSeconds(deadline))
});
但是,这里的调用选项中的截止日期是只读的。我似乎无法在这里设置它。我做错了吗,还是只能在发出请求时设置截止日期?
完全未经测试,但是怎么样
Interceptor
?