[C#]Cache Set And Get

實作:

*CacheHelper

 /// <summary>
    /// 快取-Helper
    /// </summary>
    public static class CacheHelper
    {
        private static ObjectCache _cache = MemoryCache.Default;
        /// <summary>
        /// 設定 快取
        /// </summary>
        /// <param name="key">快取Key</param>
        /// <param name="data">物件</param>
        /// <param name="cacheTime">快取保存時間(TimeSpan)</param>
        public static void Set(string key, object data, TimeSpan cacheTime)
        {
            CacheItemPolicy policy = new CacheItemPolicy();
            policy.AbsoluteExpiration = DateTime.Now + cacheTime;
            _cache.Set(key, data, policy);
        }
        /// <summary>
        /// 取得 快取
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key">快取Key</param>
        /// <param name="result">物件</param>
        /// <returns></returns>
        public static bool Get<T>(string key, ref T result)
        {
            try
            {
                var data = _cache[key];
                if (data == null)
                {
                    throw new Exception("No Value");
                }
                result = (T)(Convert.ChangeType(data, typeof(T)));
                return true;

            }
            catch
            {
                return false;
            }
        }
    }

使用範例:

*Set

CacheHelper.Set(Key_MDESManufacturerInfo, list, TimeSpan.FromDays(14));

*Get

CacheHelper.Get(Key_MDESManufacturerInfo, ref list)

留言

這個網誌中的熱門文章

[Visual Studio]位於網際網路或是限制區域上 或是檔案上標有 web 字樣 所以無法處理該檔案。若希望處理這些檔案 請移除 web 字樣。

[IIS] IIS執行時,發生拒絕存取路徑 問題

[windows] xcopy 備份至 「網路磁碟機」