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

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 resilienceContext = ResilienceContextFactory.Create(context, true, out oldProperties, cancellationToken); try { return _pipeline.Execute((ResilienceContext context, (Func<Context, CancellationToken, TResult> action, Context context) state) => state.action(state.context, context.CancellationToken), resilienceContext, (action, context)); } finally { ResilienceContextFactory.Cleanup(resilienceContext, oldProperties); } } } }