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

RetryResiliencePipelineBuilderExtensions

Extensions for adding retries to ResiliencePipelineBuilder.
using Polly.Retry; using Polly.Utils; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; namespace Polly { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public static class RetryResiliencePipelineBuilderExtensions { [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "All options members preserved.")] [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(RetryStrategyOptions))] public static ResiliencePipelineBuilder AddRetry(this ResiliencePipelineBuilder builder, RetryStrategyOptions options) { Guard.NotNull(builder, "builder"); Guard.NotNull(options, "options"); return builder.AddStrategy((StrategyBuilderContext context) => new RetryResilienceStrategy<object>(options, context.TimeProvider, context.Telemetry), options); } [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "All options members preserved.")] public static ResiliencePipelineBuilder<TResult> AddRetry<[System.Runtime.CompilerServices.Nullable(2)] [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] TResult>(this ResiliencePipelineBuilder<TResult> builder, RetryStrategyOptions<TResult> options) { Guard.NotNull(builder, "builder"); Guard.NotNull(options, "options"); return builder.AddStrategy((StrategyBuilderContext context) => new RetryResilienceStrategy<TResult>(options, context.TimeProvider, context.Telemetry), options); } } }