/// <summary> /// Cache objects for a specified amount of time /// </summary> /// <param name="key">The cache key</param> /// <param name="data">Object / Data to cache</param> /// <param name="minutesToCache">How many minutes to cache them for</param> public void Set(string key, object data, CacheTimes minutesToCache) { var policy = new CacheItemPolicy { AbsoluteExpiration = DateTime.UtcNow + TimeSpan.FromMinutes((int)minutesToCache) }; Cache.Add(new CacheItem(key, data), policy); }
public T Get <T>(string key, CacheTimes cacheTime, Func <T> acquire) { if (IsSet(key)) { return(Get <T>(key)); } var result = acquire(); if (cacheTime > 0) { Set(key, result, CacheTimes.OneHour); } return(result); }
/// <summary> /// 获取数据并设置缓存。 /// 当缓存不存在是执行 acquire方法获取数据并设置缓存。 /// </summary> /// <typeparam name="T">缓存类型</typeparam> /// <param name="cacheManager">缓存提供程序</param> /// <param name="key">键值</param> /// <param name="cacheTime">缓存时间</param> /// <param name="acquire">缓存为空时获取缓存的方法</param> /// <returns></returns> public static T Get <T>(this ObjCacheProvider cacheManager, string key, CacheTimes cacheTime, Func <T> acquire) { if (cacheManager.IsSet(key)) { var value = cacheManager.GetCache <T>(key); if (value != null) { return(value); } } var result = acquire(); if (result != null) { cacheManager.Set(key, result, cacheTime); } return(result); }
/// <summary> /// 创建缓存 /// </summary> /// <param name="key">缓存键</param> /// <param name="val">缓存值</param> /// <param name="expire">缓存时间</param> /// <returns></returns> public void Set(string key, object val, CacheTimes expire) => CacheContext.Set(key, val, expire);
/// <summary> /// 设置缓存项 /// </summary> /// <typeparam name="T">缓存对象类型</typeparam> /// <param name="key">键</param> /// <param name="data">缓存对象</param> /// <param name="minutesToCache">缓存时间</param> public abstract void Set(string key, object data, CacheTimes minutesToCache);
/// <summary> /// Cache objects for a specified amount of time /// </summary> /// <param name="key">The cache key</param> /// <param name="data">Object / Data to cache</param> /// <param name="minutesToCache">How many minutes to cache them for</param> public void Set(string key, object data, CacheTimes minutesToCache) { }