CachePolicy<TResult>
A cache policy that can be applied to the results of delegate executions.
using Polly.Utilities;
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace Polly.Caching
{
public class CachePolicy<TResult> : Policy<TResult>
{
internal CachePolicy(ICacheProvider<TResult> syncCacheProvider, ITtlStrategy ttlStrategy, ICacheKeyStrategy cacheKeyStrategy)
: base((Func<Func<Context, CancellationToken, TResult>, Context, CancellationToken, TResult>)((Func<Context, CancellationToken, TResult> action, Context context, CancellationToken cancellationToken) => CacheEngine.Implementation<TResult>(syncCacheProvider, ttlStrategy, cacheKeyStrategy, action, context, cancellationToken)), PredicateHelper.EmptyExceptionPredicates, Enumerable.Empty<ResultPredicate<TResult>>())
{
}
internal CachePolicy(ICacheProviderAsync<TResult> asyncCacheProvider, ITtlStrategy ttlStrategy, ICacheKeyStrategy cacheKeyStrategy)
: base((Func<Func<Context, CancellationToken, Task<TResult>>, Context, CancellationToken, bool, Task<TResult>>)((Func<Context, CancellationToken, Task<TResult>> func, Context context, CancellationToken cancellationToken, bool continueOnCapturedContext) => CacheEngine.ImplementationAsync<TResult>(asyncCacheProvider, ttlStrategy, cacheKeyStrategy, func, context, cancellationToken, continueOnCapturedContext)), PredicateHelper.EmptyExceptionPredicates, Enumerable.Empty<ResultPredicate<TResult>>())
{
}
}
}