<PackageReference Include="Polly" Version="5.3.1" />

PolicyWrap<TResult>

public class PolicyWrap<TResult> : Policy<TResult>, IPolicyWrap<TResult>, IPolicyWrap, IsPolicy
A policy that allows two (and by recursion more) Polly policies to wrap executions of delegates.
using Polly.Utilities; using System; using System.Threading; using System.Threading.Tasks; namespace Polly.Wrap { public class PolicyWrap<TResult> : Policy<TResult>, IPolicyWrap<TResult>, IPolicyWrap, IsPolicy { internal override void SetPolicyContext(Context executionContext) { if (executionContext.PolicyWrapKey == null) executionContext.PolicyWrapKey = base.PolicyKey; base.SetPolicyContext(executionContext); } internal PolicyWrap(Func<Func<Context, CancellationToken, TResult>, Context, CancellationToken, TResult> policyAction, Policy outer, IsPolicy inner) : base(policyAction, outer.ExceptionPredicates, PredicateHelper<TResult>.EmptyResultPredicates) { } internal PolicyWrap(Func<Func<Context, CancellationToken, TResult>, Context, CancellationToken, TResult> policyAction, Policy<TResult> outer, IsPolicy inner) : base(policyAction, outer.ExceptionPredicates, outer.ResultPredicates) { } internal PolicyWrap(Func<Func<Context, CancellationToken, Task<TResult>>, Context, CancellationToken, bool, Task<TResult>> policyAction, Policy outer, IsPolicy inner) : base(policyAction, outer.ExceptionPredicates, PredicateHelper<TResult>.EmptyResultPredicates) { } internal PolicyWrap(Func<Func<Context, CancellationToken, Task<TResult>>, Context, CancellationToken, bool, Task<TResult>> policyAction, Policy<TResult> outer, IsPolicy inner) : base(policyAction, outer.ExceptionPredicates, outer.ResultPredicates) { } } }