[Back]
// (c) JohnnyCoder // http://johnnycoder.com/blog/2008/12/10/c-cache-helper-class/ using System; using System.Web; namespace DotNetNuke.Modules.DNNSilverlightChat { public static class CacheHelper { /// <summary> /// Insert value into the cache using /// appropriate name/value pairs /// </summary> /// <typeparam name="T">Type of cached item</typeparam> /// <param name="o">Item to be cached</param> /// <param name="key">Name of item</param> public static void Add<T>(T o, string key) { // NOTE: Apply expiration parameters as you see fit. // I typically pull from configuration file. TimeSpan dtTimeSpan = new TimeSpan(0,1,0); HttpContext.Current.Cache.Insert( key, o, null, System.Web.Caching.Cache.NoAbsoluteExpiration, dtTimeSpan); } /// <summary> /// Remove item from cache /// </summary> /// <param name="key">Name of cached item</param> public static void Clear(string key) { HttpContext.Current.Cache.Remove(key); } /// <summary> /// Check for item in cache /// </summary> /// <param name="key">Name of cached item</param> /// <returns></returns> public static bool Exists(string key) { return HttpContext.Current.Cache[key] != null; } /// <summary> /// Retrieve cached item /// </summary> /// <typeparam name="T">Type of cached item</typeparam> /// <param name="key">Name of cached item</param> /// <param name="value">Cached value. Default(T) if /// item doesn't exist.</param> /// <returns>Cached item as type</returns> public static bool Get<T>(string key, out T value) { try { if (!Exists(key)) { value = default(T); return false; } value = (T)HttpContext.Current.Cache[key]; } catch { value = default(T); return false; } return true; } } }