<PackageReference Include="Polly.Core" Version="8.4.1" />

ResiliencePipeline<T>

public sealed class ResiliencePipeline<T>
Resilience pipeline is used to execute the user-provided callbacks.
using Polly.Utils; using Polly.Utils.Pipeline; using System; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Polly { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public sealed class ResiliencePipeline<[System.Runtime.CompilerServices.Nullable(2)] T> { public static readonly ResiliencePipeline<T> Empty = new ResiliencePipeline<T>(PipelineComponent.Empty, DisposeBehavior.Ignore, null); internal PipelineComponent Component => Pipeline.Component; internal ComponentDisposeHelper DisposeHelper { get; } private ResiliencePipeline Pipeline { get; } [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public ValueTask<TResult> ExecuteAsync<[System.Runtime.CompilerServices.Nullable(0)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 1, 1, 0, 1 })] Func<ResilienceContext, TState, ValueTask<TResult>> callback, ResilienceContext context, TState state) where TResult : T { Guard.NotNull<Func<ResilienceContext, TState, ValueTask<TResult>>>(callback, "callback"); Guard.NotNull<ResilienceContext>(context, "context"); return this.Pipeline.ExecuteAsync<TResult, TState>(callback, context, state); } [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public ValueTask<TResult> ExecuteAsync<[System.Runtime.CompilerServices.Nullable(0)] TResult>([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 1, 0, 1 })] Func<ResilienceContext, ValueTask<TResult>> callback, ResilienceContext context) where TResult : T { Guard.NotNull<Func<ResilienceContext, ValueTask<TResult>>>(callback, "callback"); Guard.NotNull<ResilienceContext>(context, "context"); return this.Pipeline.ExecuteAsync<TResult>(callback, context); } [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public ValueTask<TResult> ExecuteAsync<[System.Runtime.CompilerServices.Nullable(0)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 1, 0, 1 })] Func<TState, CancellationToken, ValueTask<TResult>> callback, TState state, CancellationToken cancellationToken = default(CancellationToken)) where TResult : T { Guard.NotNull<Func<TState, CancellationToken, ValueTask<TResult>>>(callback, "callback"); return this.Pipeline.ExecuteAsync<TResult, TState>(callback, state, cancellationToken); } [System.Runtime.CompilerServices.NullableContext(0)] [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public ValueTask<TResult> ExecuteAsync<TResult>([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 0, 1 })] Func<CancellationToken, ValueTask<TResult>> callback, CancellationToken cancellationToken = default(CancellationToken)) where TResult : T { Guard.NotNull<Func<CancellationToken, ValueTask<TResult>>>(callback, "callback"); return this.Pipeline.ExecuteAsync<TResult>(callback, cancellationToken); } [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 0, 1 })] public ValueTask<Outcome<TResult>> ExecuteOutcomeAsync<[System.Runtime.CompilerServices.Nullable(0)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 1, 1, 0, 0, 1 })] Func<ResilienceContext, TState, ValueTask<Outcome<TResult>>> callback, ResilienceContext context, TState state) where TResult : T { Guard.NotNull<Func<ResilienceContext, TState, ValueTask<Outcome<TResult>>>>(callback, "callback"); Guard.NotNull<ResilienceContext>(context, "context"); return this.Pipeline.ExecuteOutcomeAsync<TResult, TState>(callback, context, state); } internal ResiliencePipeline(PipelineComponent component, DisposeBehavior disposeBehavior, [System.Runtime.CompilerServices.Nullable(2)] ResilienceContextPool pool) { Pipeline = new ResiliencePipeline(component, disposeBehavior, pool); DisposeHelper = Pipeline.DisposeHelper; } public TResult Execute<[System.Runtime.CompilerServices.Nullable(0)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>(Func<ResilienceContext, TState, TResult> callback, ResilienceContext context, TState state) where TResult : T { Guard.NotNull<Func<ResilienceContext, TState, TResult>>(callback, "callback"); Guard.NotNull<ResilienceContext>(context, "context"); return this.Pipeline.Execute<TResult, TState>(callback, context, state); } public TResult Execute<[System.Runtime.CompilerServices.Nullable(0)] TResult>(Func<ResilienceContext, TResult> callback, ResilienceContext context) where TResult : T { Guard.NotNull<Func<ResilienceContext, TResult>>(callback, "callback"); Guard.NotNull<ResilienceContext>(context, "context"); return this.Pipeline.Execute<TResult>(callback, context); } public TResult Execute<[System.Runtime.CompilerServices.Nullable(0)] TResult>(Func<CancellationToken, TResult> callback, CancellationToken cancellationToken = default(CancellationToken)) where TResult : T { Guard.NotNull<Func<CancellationToken, TResult>>(callback, "callback"); return this.Pipeline.Execute<TResult>(callback, cancellationToken); } public TResult Execute<[System.Runtime.CompilerServices.Nullable(0)] TResult>(Func<TResult> callback) where TResult : T { Guard.NotNull<Func<TResult>>(callback, "callback"); return this.Pipeline.Execute<TResult>(callback); } public TResult Execute<[System.Runtime.CompilerServices.Nullable(0)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>(Func<TState, TResult> callback, TState state) where TResult : T { Guard.NotNull<Func<TState, TResult>>(callback, "callback"); return this.Pipeline.Execute<TResult, TState>(callback, state); } public TResult Execute<[System.Runtime.CompilerServices.Nullable(0)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>(Func<TState, CancellationToken, TResult> callback, TState state, CancellationToken cancellationToken = default(CancellationToken)) where TResult : T { Guard.NotNull<Func<TState, CancellationToken, TResult>>(callback, "callback"); return this.Pipeline.Execute<TResult, TState>(callback, state, cancellationToken); } } }