我想包裝AsyncFallbackPolicy <- AsyncFallbackPolicy<bool> <- AsyncRetryPolicy.包裝AsyncFallbackPolicy<bool> <- AsyncRetryPolicy工作正常,生成的 PolicyWrap 為AsyncPolicyWrap<bool>。但是一旦我添加 AsyncFallbackPolicy 我就會收到以下錯誤:您已在非泛型 FallbackPolicy 上執(zhí)行了泛型 .Execute 方法。非泛型 FallbackPolicy 僅定義返回 void 的后備操作;它永遠不能返回替代的 TResult 值。要使用 FallbackPolicy 提供回退 TResult 值,您必須定義通用回退策略 FallbackPolicy。例如,將策略定義為 Policy.Handle.Fallback(/* some TResult value or Func<..., TResult> */);我通過執(zhí)行該政策await policyWrap.ExecuteAsync(async () => await ...我不知道如何解決這個問題??梢赃@樣包起來嗎?如果是,怎么辦?謝謝
1 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
不可能在 PolicyWrap 中混合通用和非通用回退策略。您應該將針對非泛型的行為移至AsyncFallbackPolicy
泛型中AsyncFallbackPolicy<bool>
。
說明:當AsyncFallbackPolicy<bool>
包含在 PolicyWrap 中時,它會創(chuàng)建一個AsyncPolicyWrap<bool>
只能用于執(zhí)行異步返回的委托bool
。
由于錯誤消息中所述的原因,非泛型AsyncFallbackPolicy
無法參與異步返回的執(zhí)行:bool
非泛型 FallbackPolicy 僅定義返回 void 的后備操作;它永遠不能返回替代的 TResult 值。
IE 如果調用非泛型AsyncFallbackPolicy
(如果滿足其 Handle 子句的條件),它只包含異步返回的代碼void
...但void
不是 type 允許的返回值bool
,因此執(zhí)行沒有意義...所以波莉不允許。
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消