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());                }            }        }}}