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

ResiliencePipelineSyncPolicy

using System; using System.Collections.Generic; using System.Threading; namespace Polly.Utilities.Wrappers { internal sealed class ResiliencePipelineSyncPolicy : Policy { private readonly ResiliencePipeline _pipeline; public ResiliencePipelineSyncPolicy(ResiliencePipeline strategy) : base((PolicyBuilder)null) { _pipeline = strategy; } protected override void Implementation(Action<Context, CancellationToken> action, Context context, CancellationToken cancellationToken) { IDictionary<string, object> oldProperties; ResilienceContext val = ResilienceContextFactory.Create(context, true, out oldProperties, cancellationToken); try { _pipeline.Execute<(Action<Context, CancellationToken>, Context)>((Action<ResilienceContext, (Action<Context, CancellationToken>, Context)>)delegate(ResilienceContext context, (Action<Context, CancellationToken> action, Context context) state) { state.action(state.context, context.get_CancellationToken()); }, val, (action, context)); } finally { ResilienceContextFactory.Cleanup(val, oldProperties); } } protected override TResult Implementation<TResult>(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { IDictionary<string, object> oldProperties; ResilienceContext val = ResilienceContextFactory.Create(context, true, out oldProperties, cancellationToken); try { return _pipeline.Execute<TResult, (Func<Context, CancellationToken, TResult>, Context)>((Func<ResilienceContext, (Func<Context, CancellationToken, TResult>, Context), TResult>)((ResilienceContext context, (Func<Context, CancellationToken, TResult> action, Context context) state) => state.action(state.context, context.get_CancellationToken())), val, (action, context)); } finally { ResilienceContextFactory.Cleanup(val, oldProperties); } } } }