Created
December 19, 2013 00:17
-
-
Save premsh/8032188 to your computer and use it in GitHub Desktop.
asp.net MemoryCache class
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Runtime.Caching; | |
namespace CacheProject | |
{ | |
public class CacheLayer | |
{ | |
static readonly ObjectCache Cache = MemoryCache.Default; | |
/// <summary> | |
/// Retrieve cached item | |
/// </summary> | |
/// <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 | |
{ | |
try | |
{ | |
return (T)Cache[key]; | |
} | |
catch | |
{ | |
return null; | |
} | |
} | |
/// <summary> | |
/// Insert value into the cache using | |
/// appropriate name/value pairs | |
/// </summary> | |
/// <typeparam name="T">Type of cached item</typeparam> | |
/// <param name="objectToCache">Item to be cached</param> | |
/// <param name="key">Name of item</param> | |
public static void Add<T>(T objectToCache, string key) where T : class | |
{ | |
Cache.Add(key, objectToCache, DateTime.Now.AddDays(30)); | |
} | |
/// <summary> | |
/// Insert value into the cache using | |
/// appropriate name/value pairs | |
/// </summary> | |
/// <param name="objectToCache">Item to be cached</param> | |
/// <param name="key">Name of item</param> | |
public static void Add(object objectToCache, string key) | |
{ | |
Cache.Add(key, objectToCache, DateTime.Now.AddDays(30)); | |
} | |
/// <summary> | |
/// Remove item from cache | |
/// </summary> | |
/// <param name="key">Name of cached item</param> | |
public static void Clear(string key) | |
{ | |
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 Cache.Get(key) != null; | |
} | |
/// <summary> | |
/// Gets all cached items as a list by their key. | |
/// </summary> | |
/// <returns></returns> | |
public static List<string> GetAll() | |
{ | |
return Cache.Select(keyValuePair => keyValuePair.Key).ToList(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment