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

HedgingResilienceStrategyBuilderExtensions

Provides extension methods for configuring hedging resilience strategies for ResilienceStrategyBuilder.
using Polly.Hedging; using Polly.Hedging.Utils; using Polly.Utils; using System.Runtime.CompilerServices; namespace Polly { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public static class HedgingResilienceStrategyBuilderExtensions { public static ResilienceStrategyBuilder<TResult> AddHedging<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this ResilienceStrategyBuilder<TResult> builder, HedgingStrategyOptions<TResult> options) { Guard.NotNull(builder, "builder"); Guard.NotNull(options, "options"); builder.AddHedgingCore(options); return builder; } internal static ResilienceStrategyBuilder AddHedging(this ResilienceStrategyBuilder builder, HedgingStrategyOptions options) { Guard.NotNull(builder, "builder"); Guard.NotNull(options, "options"); builder.AddHedgingCore(options); return builder; } internal static void AddHedgingCore<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this ResilienceStrategyBuilderBase builder, HedgingStrategyOptions<TResult> options) { builder.AddStrategy(delegate(ResilienceStrategyBuilderContext context) { HedgingHandler<TResult> hedgingHandler = new HedgingHandler<TResult>(options.ShouldHandle, options.HedgingActionGenerator, context.IsGenericBuilder); return new HedgingResilienceStrategy<TResult>(options.HedgingDelay, options.MaxHedgedAttempts, hedgingHandler, options.OnHedging, options.HedgingDelayGenerator, context.TimeProvider, context.Telemetry, context.IsGenericBuilder); }, options); } } }