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

FallbackResiliencePipelineBuilderExtensions

Extensions for adding fallback to ResiliencePipelineBuilder.
using Polly.Fallback; 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 FallbackResiliencePipelineBuilderExtensions { [System.Diagnostics.CodeAnalysis.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> AddFallback<[System.Runtime.CompilerServices.Nullable(2)] [System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All)] TResult>(this ResiliencePipelineBuilder<TResult> builder, FallbackStrategyOptions<TResult> options) { Guard.NotNull(builder, "builder"); Guard.NotNull(options, "options"); return builder.AddStrategy((StrategyBuilderContext context) => FallbackResiliencePipelineBuilderExtensions.CreateFallback<TResult>(context, options), options); } private static ResilienceStrategy<TResult> CreateFallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(StrategyBuilderContext context, FallbackStrategyOptions<TResult> options) { return new FallbackResilienceStrategy<TResult>(new FallbackHandler<TResult>(options.ShouldHandle, options.FallbackAction), options.OnFallback, context.Telemetry); } } }