namespace Kit.Helpers.Cache { using Microsoft.Extensions.Caching.Memory; using System; public interface ICacheProvider { string CreateCacheName(object prefix, params object[] args); bool Contains(string cacheName); void PurgeCacheItems(string cacheName, bool isPrefix = false); void SetCacheData(string cacheName, TObject data, MemoryCacheEntryOptions setProperties = null); object GetCacheData(string cacheName); TResult GetCacheData(string cacheName); TResult GetCacheData(string cacheName, Func getMethod, MemoryCacheEntryOptions setProperties = null); TResult GetCacheData(string cacheName, Func getMethod, MemoryCacheEntryOptions setProperties = null, PostEvictionDelegate callback = null); } }