/// <summary> /// Wraps the specified inner policy. /// </summary> /// <param name="innerPolicy">The inner policy.</param> /// <typeparam name="TResult">The return type of delegates which may be executed through the policy.</typeparam> /// <returns>PolicyWrap.PolicyWrap.</returns> public PolicyWrap <TResult> Wrap <TResult>(Policy <TResult> innerPolicy) { if (innerPolicy == null) { throw new ArgumentNullException(nameof(innerPolicy)); } return(new PolicyWrap <TResult>( (func, context, cancellationtoken) => PolicyWrapEngine.Implementation <TResult>(func, context, cancellationtoken, this, innerPolicy) )); }
/// <summary> /// Wraps the specified inner policy. /// </summary> /// <param name="innerPolicy">The inner policy.</param> /// <returns>PolicyWrap.PolicyWrap.</returns> public PolicyWrap Wrap(Policy innerPolicy) { if (innerPolicy == null) { throw new ArgumentNullException(nameof(innerPolicy)); } return(new PolicyWrap( (action, context, cancellationtoken) => PolicyWrapEngine.Implementation(action, context, cancellationtoken, this, innerPolicy) )); }
/// <summary> /// Wraps the specified inner policy. /// </summary> /// <param name="innerPolicy">The inner policy.</param> /// <typeparam name="TResult">The return type of delegates which may be executed through the policy.</typeparam> /// <returns>PolicyWrap.PolicyWrap.</returns> public PolicyWrap <TResult> WrapAsync <TResult>(IAsyncPolicy <TResult> innerPolicy) { if (innerPolicy == null) { throw new ArgumentNullException(nameof(innerPolicy)); } return(new PolicyWrap <TResult>( (func, context, cancellationtoken, continueOnCapturedContext) => PolicyWrapEngine.ImplementationAsync <TResult>(func, context, cancellationtoken, continueOnCapturedContext, this, innerPolicy), this, innerPolicy )); }
/// <summary> /// Wraps the specified inner policy. /// </summary> /// <param name="innerPolicy">The inner policy.</param> /// <returns>PolicyWrap.PolicyWrap.</returns> public PolicyWrap WrapAsync(IAsyncPolicy innerPolicy) { if (innerPolicy == null) { throw new ArgumentNullException(nameof(innerPolicy)); } return(new PolicyWrap( (action, context, cancellationtoken, continueOnCapturedContext) => PolicyWrapEngine.ImplementationAsync(action, context, cancellationtoken, continueOnCapturedContext, this, innerPolicy), this, innerPolicy )); }