亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Polly:用 AsyncFallbackPolicy 包裝 AsyncFallbackPolicy

Polly:用 AsyncFallbackPolicy 包裝 AsyncFallbackPolicy

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

1 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

不可能在 PolicyWrap 中混合通用和非通用回退策略。您應該將針對非泛型的行為移至AsyncFallbackPolicy泛型中AsyncFallbackPolicy<bool>

說明:當AsyncFallbackPolicy<bool>包含在 PolicyWrap 中時,它會創建一個AsyncPolicyWrap<bool>只能用于執行異步返回的委托bool。

由于錯誤消息中所述的原因,非泛型AsyncFallbackPolicy無法參與異步返回的執行:bool

非泛型 FallbackPolicy 僅定義返回 void 的后備操作;它永遠不能返回替代的 TResult 值。

IE 如果調用非泛型AsyncFallbackPolicy(如果滿足其 Handle 子句的條件),它只包含異步返回的代碼void...但void不是 type 允許的返回值bool,因此執行沒有意義...所以波莉不允許。


查看完整回答
反對 回復 2023-08-13
  • 1 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號