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

ResiliencePipelineSyncPolicy<TResult>

sealed class ResiliencePipelineSyncPolicy<TResult> : Policy<TResult>
using System; using System.Collections.Generic; using System.Threading; namespace Polly.Utilities.Wrappers { internal sealed class ResiliencePipelineSyncPolicy<TResult> : Policy<TResult> { private readonly ResiliencePipeline<TResult> _pipeline; public ResiliencePipelineSyncPolicy(ResiliencePipeline<TResult> strategy) : base((PolicyBuilder<TResult>)null) { _pipeline = strategy; } protected override TResult Implementation(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { IDictionary<string, object> oldProperties; ResilienceContext val = ResilienceContextFactory.Create(context, cancellationToken, true, out oldProperties); 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); } } } }