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

Policy<TResult>

public abstract class Policy<TResult> : PolicyBase<TResult>, ISyncPolicy<TResult>, IsPolicy
Transient fault handling policies that can be applied to delegates returning results of type TResult.
protected Policy(PolicyBuilder<TResult> policyBuilder = null)

Initializes a new instance of the Policy<T> class.

public static PolicyBuilder<TResult> Handle<TException>() where TException : Exception

Specifies the type of exception that this policy can handle.

public static PolicyBuilder<TResult> Handle<TException>(Func<TException, bool> exceptionPredicate) where TException : Exception

Specifies the type of exception that this policy can handle with additional filters on this exception type.

public static PolicyBuilder<TResult> HandleInner<TException>() where TException : Exception

Specifies the type of exception that this policy can handle if found as an InnerException of a regular Exception, or at any level of nesting within an AggregateException.

public static PolicyBuilder<TResult> HandleInner<TException>(Func<TException, bool> exceptionPredicate) where TException : Exception

Specifies the type of exception that this policy can handle, with additional filters on this exception type, if found as an InnerException of a regular Exception, or at any level of nesting within an AggregateException.

public static PolicyBuilder<TResult> HandleResult(Func<TResult, bool> resultPredicate)

Specifies a filter on the return result values that this strongly-typed generic policy will handle.

public static PolicyBuilder<TResult> HandleResult(TResult result)

Specifies a return result value which the strongly-typed generic policy will handle.

public TResult Execute(Func<TResult> action)

Executes the specified action within the policy and returns the Result.

public TResult Execute(Func<Context, TResult> action, IDictionary<string, object> contextData)

Executes the specified action within the policy and returns the result.

public TResult Execute(Func<Context, TResult> action, Context context)

Executes the specified action within the policy and returns the result.

public TResult Execute(Func<CancellationToken, TResult> action, CancellationToken cancellationToken)

Executes the specified action within the policy and returns the result.

public TResult Execute(Func<Context, CancellationToken, TResult> action, IDictionary<string, object> contextData, CancellationToken cancellationToken)

Executes the specified action within the policy and returns the result.

public TResult Execute(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken)

Executes the specified action within the policy and returns the result.

public PolicyResult<TResult> ExecuteAndCapture(Func<TResult> action)

Executes the specified action within the policy and returns the captured result.

public PolicyResult<TResult> ExecuteAndCapture(Func<Context, TResult> action, IDictionary<string, object> contextData)

Executes the specified action within the policy and returns the captured result.

public PolicyResult<TResult> ExecuteAndCapture(Func<Context, TResult> action, Context context)

Executes the specified action within the policy and returns the captured result.

public PolicyResult<TResult> ExecuteAndCapture(Func<CancellationToken, TResult> action, CancellationToken cancellationToken)

Executes the specified action within the policy and returns the captured result.

public PolicyResult<TResult> ExecuteAndCapture(Func<Context, CancellationToken, TResult> action, IDictionary<string, object> contextData, CancellationToken cancellationToken)

Executes the specified action within the policy and returns the captured result.

public PolicyResult<TResult> ExecuteAndCapture(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken)

Executes the specified action within the policy and returns the captured result.

protected abstract TResult Implementation(Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken)

Defines the implementation of a policy for synchronous executions returning TResult.

public Policy<TResult> WithPolicyKey(string policyKey)

Sets the PolicyKey for this Policy<T> instance. Must be called before the policy is first used. Can only be set once.

public PolicyWrap<TResult> Wrap(ISyncPolicy innerPolicy)

Wraps the specified inner policy.

public PolicyWrap<TResult> Wrap(ISyncPolicy<TResult> innerPolicy)

Wraps the specified inner policy.