+using System.Collections.Generic;
+using System.Web.Hosting;
+using System.Web.Caching;
+using System.Runtime.Caching;
+namespace SurinderBhomra.Common
+ public class CacheEngine
+ private static readonly ObjectCache Cache = MemoryCache.Default;
+ /// Retrieve cached item.
+ /// <typeparam name="T">Type of cached item</typeparam>
+ /// <param name="key">Name of cached item</param>
+ /// <returns>Cached item as type</returns>
+ public static T Get<T>(string key) where T : class
+ /// Insert value into the cache using appropriate name/value pairs.
+ /// <typeparam name="T">Type of cached item</typeparam>
+ /// <param name="objectToCache">Item to be cached</param>
+ /// <param name="key">Name of item</param>
+ /// <param name="minutes">Number of minutes for object to stay in cache</param>
+ public static void Add<T>(T objectToCache, string key, int minutes) where T : class
+ Cache.Add(key, objectToCache, DateTime.Now.AddMinutes(minutes));
+ /// Insert value into the cache using appropriate name/value pairs.
+ /// <param name="objectToCache">Item to be cached</param>
+ /// <param name="key">Name of item</param>
+ /// <param name="minutes">Number of minutes for object to stay in cache</param>
+ public static void Add(object objectToCache, string key, int minutes)
+ Cache.Add(key, objectToCache, DateTime.Now.AddMinutes(minutes));
+ /// Remove item from cache.
+ /// <param name="key">Name of cached item</param>
+ public static void Clear(string key)
+ /// Check for item in cache.
+ /// <param name="key">Name of cached item</param>
+ /// <returns></returns>
+ public static bool Exists(string key)
+ return Cache.Get(key) != null;
+ /// Gets all cached items as a list by their key.
+ /// <returns></returns>
+ public static List<string> GetAll()
+ return Cache.Select(keyValuePair => keyValuePair.Key).ToList();