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

CircuitStateController<TResult>

abstract class CircuitStateController<TResult> : ICircuitController<TResult>
protected long BlockedTill

protected readonly TimeSpan DurationOfBreak

protected DelegateResult<TResult> LastOutcome

protected readonly object Lock

protected readonly Action<DelegateResult<TResult>, CircuitState, TimeSpan, Context> OnBreak

protected readonly Action OnHalfOpen

protected readonly Action<Context> OnReset

public CircuitState CircuitState { get; }

protected bool IsInAutomatedBreak_NeedsLock { get; }

public Exception LastException { get; }

public TResult LastHandledResult { get; }

protected CircuitStateController(TimeSpan durationOfBreak, Action<DelegateResult<TResult>, CircuitState, TimeSpan, Context> onBreak, Action<Context> onReset, Action onHalfOpen)

protected void Break_NeedsLock(Context context)

public void Isolate()

public abstract void OnActionFailure(DelegateResult<TResult> outcome, Context context)

public void OnActionPreExecute()

public abstract void OnActionSuccess(Context context)

public abstract void OnCircuitReset(Context context)

protected bool PermitHalfOpenCircuitTest()

public void Reset()

protected void ResetInternal_NeedsLock(Context context)