MyNews.Common
来源:互联网 发布:网络好声音直播 编辑:程序博客网 时间:2024/06/17 19:21
using System;using System.Web;using System.Collections;using System.Text.RegularExpressions;namespace MyNews.Common{/// <summary>/// 缓存相关的操作类 /// Copyright (C) MyNews/// </summary>public class DataCache{ /// <summary> /// 获取当前应用程序指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <returns></returns> public static object GetCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; return objCache[CacheKey]; } /// <summary> /// 设置当前应用程序指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <param name="objObject"></param> public static void SetCache(string CacheKey, object objObject) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject); } /// <summary> /// 设置当前应用程序指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <param name="objObject"></param> public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration); } /// <summary> /// 设置当前应用程序指定CacheKey的Cache值 /// </summary> /// <param name="CacheKey"></param> /// <param name="objObject"></param> public static void SetCache(string CacheKey, object objObject, System.Web.Caching.CacheDependency _dep) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Insert(CacheKey, objObject, _dep); } /// <summary> /// 清除单一键缓存 /// </summary> /// <param name="key"></param> public static void RemoveOneCache(string CacheKey) { System.Web.Caching.Cache objCache = HttpRuntime.Cache; objCache.Remove(CacheKey); } /// <summary> /// 清除所有缓存 /// </summary> public static void RemoveAllCache() { System.Web.Caching.Cache _cache = HttpRuntime.Cache; IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); if (_cache.Count > 0) { ArrayList al = new ArrayList(); while (CacheEnum.MoveNext()) { al.Add(CacheEnum.Key); } foreach (string key in al) { _cache.Remove(key); } } } /// <summary> /// 以列表形式返回已存在的所有缓存 /// </summary> /// <returns></returns> public static ArrayList ShowAllCache() { ArrayList al = new ArrayList(); System.Web.Caching.Cache _cache = HttpRuntime.Cache; if (_cache.Count > 0) { IDictionaryEnumerator CacheEnum = _cache.GetEnumerator(); while (CacheEnum.MoveNext()) { al.Add(CacheEnum.Key); } } return al; } /// <summary> /// 一个正则,我可以清空一片缓存 /// </summary> /// <param name="pattern">正则表达式</param> public static void RemoveByRegex(string pattern) { IDictionaryEnumerator em = HttpContext.Current.Cache.GetEnumerator(); Regex regex = new Regex(pattern, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.IgnoreCase); while (em.MoveNext()) { if (regex.IsMatch(em.Key.ToString())) { HttpContext.Current.Cache.Remove(em.Key.ToString()); } } }}}