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

CircuitBreakerStateProvider

public sealed class CircuitBreakerStateProvider
Allows retrieval of the circuit breaker state.
using System; using System.Runtime.CompilerServices; namespace Polly.CircuitBreaker { public sealed class CircuitBreakerStateProvider { [System.Runtime.CompilerServices.Nullable(2)] private Func<CircuitState> _circuitStateProvider; [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 0, 1 })] private Func<Outcome<object>?> _lastHandledOutcomeProvider; internal bool IsInitialized => _circuitStateProvider != null; public CircuitState CircuitState => _circuitStateProvider?.Invoke() ?? CircuitState.Closed; [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] public Outcome<object>? LastHandledOutcome { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] get { return _lastHandledOutcomeProvider?.Invoke(); } } [System.Runtime.CompilerServices.NullableContext(1)] internal void Initialize(Func<CircuitState> circuitStateProvider, [System.Runtime.CompilerServices.Nullable(new byte[] { 1, 0, 1 })] Func<Outcome<object>?> lastHandledOutcomeProvider) { if (_circuitStateProvider != null) throw new InvalidOperationException("This instance of 'CircuitBreakerStateProvider' is already initialized and cannot be used in a different circuit-breaker strategy."); _circuitStateProvider = circuitStateProvider; _lastHandledOutcomeProvider = lastHandledOutcomeProvider; } } }