diff --git a/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs b/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs
index 384ee33ee9e..3032393a0fa 100644
--- a/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs
+++ b/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs
@@ -8,7 +8,7 @@ namespace Polly.CircuitBreaker
///
/// A circuit-breaker policy that can be applied to delegates.
///
- public partial class CircuitBreakerPolicy : Policy
+ public partial class CircuitBreakerPolicy : Policy, ICircuitBreakerPolicy
{
private readonly ICircuitController _breakerController;
@@ -57,7 +57,7 @@ public void Reset()
///
/// A circuit-breaker policy that can be applied to delegates returning a value of type .
///
- public partial class CircuitBreakerPolicy : Policy
+ public partial class CircuitBreakerPolicy : Policy, ICircuitBreakerPolicy
{
private readonly ICircuitController _breakerController;
diff --git a/src/Polly.Shared/CircuitBreaker/ICircuitBreakerPolicy.cs b/src/Polly.Shared/CircuitBreaker/ICircuitBreakerPolicy.cs
new file mode 100644
index 00000000000..43b14db9f3c
--- /dev/null
+++ b/src/Polly.Shared/CircuitBreaker/ICircuitBreakerPolicy.cs
@@ -0,0 +1,30 @@
+using System;
+
+namespace Polly.CircuitBreaker
+{
+ ///
+ /// Common interface for CB policies allowing users of the library to
+ ///
+ public interface ICircuitBreakerPolicy
+ {
+ ///
+ /// Gets the state of the underlying circuit.
+ ///
+ CircuitState CircuitState { get; }
+
+ ///
+ /// Gets the last exception handled by the circuit-breaker.
+ ///
+ Exception LastException { get; }
+
+ ///
+ /// Isolates (opens) the circuit manually, and holds it in this state until a call to is made.
+ ///
+ void Isolate();
+
+ ///
+ /// Closes the circuit, and resets any statistics controlling automated circuit-breaking.
+ ///
+ void Reset();
+ }
+}
diff --git a/src/Polly.Shared/Polly.Shared.projitems b/src/Polly.Shared/Polly.Shared.projitems
index aab685a62c1..97733fa960c 100644
--- a/src/Polly.Shared/Polly.Shared.projitems
+++ b/src/Polly.Shared/Polly.Shared.projitems
@@ -35,6 +35,7 @@
+