/// <summary> /// 添加缓存(如果缓存键已经存在,则此方法调用无效) /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">缓存键</param> /// <param name="value">值</param> /// <param name="CacheTimeOption">缓存时间</param> /// <param name="CacheExpirationOption">缓存过期时间类别(绝对/弹性)</param> public static void Set <T>(string key, T value, CacheTimeOption CacheTimeOption, CacheExpirationOption CacheExpirationOption) { Set(key, value, CacheTimeOption, CacheExpirationOption, null, CacheItemPriority.NotRemovable, null); }
/// <summary> /// 添加缓存(如果缓存键已经存在,则此方法调用无效) /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">缓存键</param> /// <param name="value">值</param> /// <param name="CacheTimeOption">缓存时间</param> /// <param name="CacheExpirationOption">缓存过期时间类别(绝对/弹性)</param> /// <param name="dependencies">缓存依赖项</param> public static void Set <T>(string key, T value, CacheTimeOption CacheTimeOption, CacheExpirationOption CacheExpirationOption, CacheDependency dependencies) { Set(key, value, CacheTimeOption, CacheExpirationOption, dependencies, CacheItemPriority.NotRemovable, null); }
/// <summary> /// 获取弹性时间过期时间 /// </summary> /// <param name="CacheTimeOption">缓存的时间长短</param> /// <param name="CacheExpirationOption"></param> /// <returns></returns> private static TimeSpan GetSlidingExpirationTime(CacheTimeOption CacheTimeOption, CacheExpirationOption CacheExpirationOption) { if (CacheExpirationOption == CacheExpirationOption.AbsoluteExpiration || CacheTimeOption == CacheTimeOption.NotRemovable) { return(Cache.NoSlidingExpiration); } return(TimeSpan.FromMinutes((int)CacheTimeOption)); }
// 主调方法 /// <summary> /// 添加缓存(如果缓存键已经存在,则此方法调用无效) /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="key">缓存键</param> /// <param name="value">值</param> /// <param name="CacheTimeOption">缓存的时间长短</param> /// <param name="CacheExpirationOption"></param> /// <param name="dependencies">缓存依赖项</param> /// <param name="cacheItemPriority">优先级</param> /// <param name="callback">回调函数</param> public static void Set <T>(string key, T value, CacheTimeOption CacheTimeOption, CacheExpirationOption CacheExpirationOption, CacheDependency dependencies, CacheItemPriority cacheItemPriority, CacheItemRemovedCallback callback) { if (!value.Equals(default(T)) && CacheTimeOption != CacheTimeOption.None) { DateTime absoluteExpiration = GetAbsoluteExpirationTime(CacheTimeOption, CacheExpirationOption); TimeSpan slidingExpiration = GetSlidingExpirationTime(CacheTimeOption, CacheExpirationOption); HttpRuntime.Cache.Add(key, value, dependencies, absoluteExpiration, slidingExpiration, cacheItemPriority, callback); } }
/// <summary> /// 获取绝对日期时间 /// </summary> /// <param name="CacheTimeOption">缓存的时间长短</param> /// <param name="CacheExpirationOption"></param> /// <returns></returns> public static DateTime GetAbsoluteExpirationTime(CacheTimeOption CacheTimeOption, CacheExpirationOption CacheExpirationOption) { if (CacheExpirationOption == CacheExpirationOption.SlidingExpiration || CacheTimeOption == CacheTimeOption.NotRemovable) { return(Cache.NoAbsoluteExpiration); } return(DateTime.Now.AddMinutes((int)CacheTimeOption)); }