FallbackResilienceStrategyBuilderExtensions
Provides extension methods for configuring fallback resilience strategies for ResilienceStrategyBuilder.
using Polly.Fallback;
using Polly.Utils;
using System.Runtime.CompilerServices;
namespace Polly
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public static class FallbackResilienceStrategyBuilderExtensions
{
public static ResilienceStrategyBuilder<TResult> AddFallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this ResilienceStrategyBuilder<TResult> builder, FallbackStrategyOptions<TResult> options)
{
Guard.NotNull(builder, "builder");
Guard.NotNull(options, "options");
builder.AddFallbackCore(options);
return builder;
}
internal static ResilienceStrategyBuilder AddFallback(this ResilienceStrategyBuilder builder, FallbackStrategyOptions options)
{
Guard.NotNull(builder, "builder");
Guard.NotNull(options, "options");
builder.AddFallbackCore(options);
return builder;
}
internal static void AddFallbackCore<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this ResilienceStrategyBuilderBase builder, FallbackStrategyOptions<TResult> options)
{
builder.AddStrategy((ResilienceStrategyBuilderContext context) => new FallbackResilienceStrategy<TResult>(new FallbackHandler<TResult>(options.ShouldHandle, options.FallbackAction, context.IsGenericBuilder), options.OnFallback, context.Telemetry, context.IsGenericBuilder), options);
}
}
}