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

FallbackTResultSyntax

public static class FallbackTResultSyntax
using Polly.Fallback; using System; using System.Runtime.CompilerServices; using System.Threading; namespace Polly { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public static class FallbackTResultSyntax { public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, TResult fallbackValue) { Action<DelegateResult<TResult>> onFallback = delegate { }; return policyBuilder.Fallback(() => fallbackValue, onFallback); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<TResult> fallbackAction) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); Action<DelegateResult<TResult>> onFallback = delegate { }; return policyBuilder.Fallback(fallbackAction, onFallback); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<CancellationToken, TResult> fallbackAction) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); Action<DelegateResult<TResult>> onFallback = delegate { }; return policyBuilder.Fallback(fallbackAction, onFallback); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, TResult fallbackValue, Action<DelegateResult<TResult>> onFallback) { if (onFallback == null) throw new ArgumentNullException("onFallback"); return policyBuilder.Fallback((DelegateResult<TResult> _, Context _, CancellationToken _) => fallbackValue, delegate(DelegateResult<TResult> outcome, Context _) { onFallback(outcome); }); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<TResult> fallbackAction, Action<DelegateResult<TResult>> onFallback) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); if (onFallback == null) throw new ArgumentNullException("onFallback"); return policyBuilder.Fallback((DelegateResult<TResult> _, Context _, CancellationToken _) => fallbackAction(), delegate(DelegateResult<TResult> outcome, Context _) { onFallback(outcome); }); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<CancellationToken, TResult> fallbackAction, Action<DelegateResult<TResult>> onFallback) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); if (onFallback == null) throw new ArgumentNullException("onFallback"); return policyBuilder.Fallback((DelegateResult<TResult> _, Context _, CancellationToken ct) => fallbackAction(ct), delegate(DelegateResult<TResult> outcome, Context _) { onFallback(outcome); }); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, TResult fallbackValue, Action<DelegateResult<TResult>, Context> onFallback) { if (onFallback == null) throw new ArgumentNullException("onFallback"); return policyBuilder.Fallback((DelegateResult<TResult> _, Context _, CancellationToken _) => fallbackValue, onFallback); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<Context, TResult> fallbackAction, Action<DelegateResult<TResult>, Context> onFallback) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); if (onFallback == null) throw new ArgumentNullException("onFallback"); return policyBuilder.Fallback((DelegateResult<TResult> _, Context ctx, CancellationToken _) => fallbackAction(ctx), onFallback); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<Context, CancellationToken, TResult> fallbackAction, Action<DelegateResult<TResult>, Context> onFallback) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); if (onFallback == null) throw new ArgumentNullException("onFallback"); return policyBuilder.Fallback((DelegateResult<TResult> _, Context ctx, CancellationToken ct) => fallbackAction(ctx, ct), onFallback); } public static FallbackPolicy<TResult> Fallback<[System.Runtime.CompilerServices.Nullable(2)] TResult>(this PolicyBuilder<TResult> policyBuilder, Func<DelegateResult<TResult>, Context, CancellationToken, TResult> fallbackAction, Action<DelegateResult<TResult>, Context> onFallback) { if (fallbackAction == null) throw new ArgumentNullException("fallbackAction"); if (onFallback == null) throw new ArgumentNullException("onFallback"); return new FallbackPolicy<TResult>(policyBuilder, onFallback, fallbackAction); } } }