执行多个策略

den*_*nny 1 .net polly

如何执行多个策略(或将它们合并为一个策略)?

例如我有:

var policy1 = Policy.Handle< DivideByZeroException >().WaitAndRetry(5));

var policy2 = Policy.Handle< StackOverflowException >().RetryForever();
Run Code Online (Sandbox Code Playgroud)

如何同时将它们应用于一种方法?

Ofi*_*ten 8

从Polly v5.0开始,有一个新的PolicyWrap类,它允许您组合多个策略.

var policy1 = Policy.Handle<DivideByZeroException>().WaitAndRetry(3, i => TimeSpan.FromSeconds(1));
var policy2 = Policy.Handle<StackOverflowException>().RetryForever();
PolicyWrap policyWrap = Policy.Wrap(policy1, policy2);
policyWrap.Execute(someGreatAction);
Run Code Online (Sandbox Code Playgroud)