c# - 对象缓存 OBJECT CACHING

来源:互联网 发布:量化投资 算法 编辑:程序博客网 时间:2024/06/05 15:47

对象缓存类,转自此人博客:http://deanhume.com/Home/BlogPost/object-caching----net-4/37

using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Caching;using System.Text;using System.Threading.Tasks;namespace YourNameSpace{    /// <summary>    /// This class was borrowed from    /// http://deanhume.com/Home/BlogPost/object-caching----net-4/37    /// </summary>    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, MemoryCache.InfiniteAbsoluteExpiration);        }        /// <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, MemoryCache.InfiniteAbsoluteExpiration);        }        /// <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();        }    }}
0 0
原创粉丝点击