ResilienceStrategyBuilderExtensions
Extensions for ResilienceStrategyBuilderBase.
using Polly.Utils;
using System;
using System.Runtime.CompilerServices;
namespace Polly
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public static class ResilienceStrategyBuilderExtensions
{
[System.Runtime.CompilerServices.Nullable(0)]
internal sealed class EmptyOptions : ResilienceStrategyOptions
{
public static readonly EmptyOptions Instance = new EmptyOptions();
public override string StrategyType => "Empty";
}
public static TBuilder AddStrategy<[System.Runtime.CompilerServices.Nullable(0)] TBuilder>(this TBuilder builder, ResilienceStrategy strategy) where TBuilder : ResilienceStrategyBuilderBase
{
Guard.NotNull(builder, "builder");
Guard.NotNull(strategy, "strategy");
return builder.AddStrategy((ResilienceStrategyBuilderContext _) => strategy, EmptyOptions.Instance);
}
public static TBuilder AddStrategy<[System.Runtime.CompilerServices.Nullable(0)] TBuilder>(this TBuilder builder, Func<ResilienceStrategyBuilderContext, ResilienceStrategy> factory, ResilienceStrategyOptions options) where TBuilder : ResilienceStrategyBuilderBase
{
Guard.NotNull(builder, "builder");
Guard.NotNull(factory, "factory");
Guard.NotNull(options, "options");
builder.AddStrategyCore(factory, options);
return builder;
}
}
}