/// <summary> /// 获取缓存配置实例。 /// </summary> /// <param name="key">缓存键。</param> /// <param name="dependency">缓存依赖项。</param> /// <returns>返回缓存配置实例。</returns> protected StorageCache GetCache(object key, IStorageCacheDependency dependency) { var hashedKey = GetCacheKey(key); var cache = _cache.GetOrCreate(hashedKey, ctx => { ctx.SetAbsoluteExpiration(Cores.DefaultCacheExpiration); return(_db.Find(hashedKey)); }); if (cache == null) { return(null); } if (dependency?.IsEqual(cache.Dependency) == false || cache.ExpiredDate != null && cache.ExpiredDate < DateTimeOffset.Now) { Remove(hashedKey); return(null); } return(cache); }
/// <summary> /// 获取缓存配置实例。 /// </summary> /// <param name="key">缓存键。</param> /// <param name="dependency">缓存依赖项。</param> /// <returns>返回缓存配置实例。</returns> protected async Task <StorageCache> GetCacheAsync(object key, IStorageCacheDependency dependency) { var hashedKey = GetCacheKey(key); var cache = await _cache.GetOrCreateAsync(hashedKey, async ctx => { ctx.SetAbsoluteExpiration(Cores.DefaultCacheExpiration); return(await _db.FindAsync(hashedKey)); }); if (cache == null) { return(null); } if (dependency?.IsEqual(cache.Dependency) == false || cache.ExpiredDate != null && cache.ExpiredDate < DateTimeOffset.Now) { await RemoveAsync(hashedKey); return(null); } return(cache); }