Seguindo a integração da fábrica de clientes gRPC no .NET, posso registrar um cliente gRPC assim:
builder.Services.AddGrpcClient<Greeter.GreeterClient>(o =>
{
o.Address = new Uri("https://localhost:5001");
});
Agora eu gostaria de definir um prazo universal para todas as chamadas feitas com este cliente. Talvez algo assim:
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))
});
No entanto, o prazo nas opções de chamada é somente leitura aqui. Parece que não consigo defini-lo aqui. Estou fazendo errado ou só é possível definir um prazo ao enviar a solicitação?
Completamente não testado, mas que tal um
Interceptor
?