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

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.Diagnostics; using System.Threading; 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(PolicyBuilder<TResult> policyBuilder, ICircuitController<TResult> breakerController) : base(policyBuilder) { _breakerController = breakerController; } public void Isolate() { _breakerController.Isolate(); } public void Reset() { _breakerController.Reset(); } [DebuggerStepThrough] protected override TResult Implementation(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) { return CircuitBreakerEngine.Implementation<TResult>(action, context, cancellationToken, base.ExceptionPredicates, base.ResultPredicates, _breakerController); } } }