| using Microsoft.Extensions.Caching.Distributed; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
|   | 
| namespace WIDESEA_Core.Caches | 
| { | 
|     /// <summary> | 
|     /// 缓存抽象接口,基于IDistributedCache封装 | 
|     /// </summary> | 
|     public interface ICaching | 
|     { | 
|         public IDistributedCache Cache { get; } | 
|         void AddCacheKey(string cacheKey); | 
|         Task AddCacheKeyAsync(string cacheKey); | 
|   | 
|         void DelByPattern(string key); | 
|         Task DelByPatternAsync(string key); | 
|   | 
|         void DelCacheKey(string cacheKey); | 
|         Task DelCacheKeyAsync(string cacheKey); | 
|   | 
|         bool Exists(string cacheKey); | 
|         Task<bool> ExistsAsync(string cacheKey); | 
|   | 
|         List<string> GetAllCacheKeys(); | 
|         Task<List<string>> GetAllCacheKeysAsync(); | 
|   | 
|         T Get<T>(string cacheKey); | 
|         Task<T> GetAsync<T>(string cacheKey); | 
|   | 
|         object Get(Type type, string cacheKey); | 
|         Task<object> GetAsync(Type type, string cacheKey); | 
|   | 
|         string GetString(string cacheKey); | 
|         Task<string> GetStringAsync(string cacheKey); | 
|   | 
|         void Remove(string key); | 
|         Task RemoveAsync(string key); | 
|   | 
|         void RemoveAll(); | 
|         Task RemoveAllAsync(); | 
|   | 
|         void Set<T>(string cacheKey, T value, TimeSpan? expire = null); | 
|         Task SetAsync<T>(string cacheKey, T value); | 
|         Task SetAsync<T>(string cacheKey, T value, TimeSpan expire); | 
|   | 
|         void SetPermanent<T>(string cacheKey, T value); | 
|         Task SetPermanentAsync<T>(string cacheKey, T value); | 
|   | 
|         void SetString(string cacheKey, string value, TimeSpan? expire = null); | 
|         Task SetStringAsync(string cacheKey, string value); | 
|         Task SetStringAsync(string cacheKey, string value, TimeSpan expire); | 
|   | 
|         Task DelByParentKeyAsync(string key); | 
|     } | 
| } |