我试图在构造函数中实现用于处理HTTP错误状态的Polly,但出现错误消息:非泛型方法不能与类型参数一起使用。我虽然使用了他们网站上的代码。在这里:
public BaseApiManager()
{
Retry = Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
}
错误在第二行“ OrResult”上。我还尝试将其与ApiResponse一起使用,这是我的通用类,但效果不佳。 我究竟做错了什么 ?谢谢。
答案 0 :(得分:0)
更正您的重试定义指定类型:
private RetryPolicy<HttpResponseMessage> Retry { get; }
答案 1 :(得分:0)
它应该如下工作:
Policy.HandleResult<HttpResponseMessage>(r => r.StatusCode == HttpStatusCode.InternalServerError)
.OrResult(r => r.StatusCode == HttpStatusCode.BadGateway)
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(5));
.OrResult(...)
不需要泛型类型参数,因为.Handle<HttpResponseMessage>(...)
子句已经将策略绑定为处理类型HttpResponseMessage
的结果。