<PackageReference Include="Polly" Version="6.1.2" />

CircuitBreakerPolicy<TResult>

public class CircuitBreakerPolicy<TResult> : Policy<TResult>, ICircuitBreakerPolicy<TResult>, ICircuitBreakerPolicy, IsPolicy
A circuit-breaker policy that can be applied to delegates returning a value of type TResult.
using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Polly.CircuitBreaker { public class CircuitBreakerPolicy<TResult> : Policy<TResult>, ICircuitBreakerPolicy<TResult>, ICircuitBreakerPolicy, IsPolicy { internal readonly ICircuitController<TResult> _breakerController; public CircuitState CircuitState => _breakerController.CircuitState; public Exception LastException => _breakerController.LastException; public TResult LastHandledResult => _breakerController.LastHandledResult; internal CircuitBreakerPolicy(Func<Func<Context, CancellationToken, TResult>, Context, CancellationToken, TResult> executionPolicy, IEnumerable<ExceptionPredicate> exceptionPredicates, IEnumerable<ResultPredicate<TResult>> resultPredicates, ICircuitController<TResult> breakerController) : base(executionPolicy, exceptionPredicates, resultPredicates) { _breakerController = breakerController; } public void Isolate() { _breakerController.Isolate(); } public void Reset() { _breakerController.Reset(); } internal CircuitBreakerPolicy(Func<Func<Context, CancellationToken, Task<TResult>>, Context, CancellationToken, bool, Task<TResult>> asyncExecutionPolicy, IEnumerable<ExceptionPredicate> exceptionPredicates, IEnumerable<ResultPredicate<TResult>> resultPredicates, ICircuitController<TResult> breakerController) : base(asyncExecutionPolicy, exceptionPredicates, resultPredicates) { _breakerController = breakerController; } } }