using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Mesnac.Basic { /// <summary> /// 全局缓存工厂类 /// </summary> public class CacheFactory { #region 单例实现 private static CacheFactory _instance = null; //静态成员 /// <summary> /// 私有构造方法 /// </summary> private CacheFactory() { } /// <summary> /// 缓存工厂静态实例 /// </summary> public static CacheFactory Instance { get { lock(String.Empty) { if (_instance == null) { _instance = new CacheFactory(); } return _instance; } } } #endregion #region 字段定义 private Dictionary<string, object> dic = new Dictionary<string, object>(); #endregion #region 方法定义 /// <summary> /// 判断缓存工厂中是否存在指定的缓存项 /// </summary> /// <param name="key">缓存的key值</param> /// <returns>存在返回true,不存在返回false</returns> public bool ContainsKey(string key) { return this.dic.ContainsKey(key); } /// <summary> /// 缓存方法 /// </summary> /// <typeparam name="T">缓存对象的类型</typeparam> /// <param name="key">缓存的key值</param> /// <param name="value">缓存的对象值</param> public void Cache<T>(string key, T value) { this.dic[key] = value; } /// <summary> /// 从缓存中获取对象 /// </summary> /// <typeparam name="T">缓存对象的类型</typeparam> /// <param name="key">缓存的key值</param> /// <returns>返回缓存对象值</returns> public T Get<T>(string key) { if (this.dic.ContainsKey(key)) { object value = this.dic[key]; return (T)value; } return default(T); } /// <summary> /// 清空指定的缓存对象 /// </summary> /// <param name="key">缓存的key值</param> public void ClearByKey(string key) { if (this.dic.ContainsKey(key)) { this.dic.Remove(key); } } /// <summary> /// 清空所有缓存对象 /// </summary> public void ClearAll() { this.dic.Clear(); } #endregion } }