国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[EnterpriseLibraryfor.NETFramework2.0]緩存使用小計

2019-11-14 16:29:24
字體:
來源:轉載
供稿:網友

關鍵代碼:

using Microsoft.PRactices.EnterpriseLibrary.Caching;using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;using System;namespace ETLUtilHelpV2{    /// <summary>    /// Enterprise Library for .NET Framework 2.0  緩存工具類    /// </summary>    public class ETLCacheToolV2    {        /*         *在Caching application Block中,主要提供以下四種保存緩存數據的途徑,         *分別是:內存存儲(默認)、獨立存儲(Isolated Storage)、         *數據庫存儲(DataBase Cache Storage)和自定義存儲(Custom Cache Storage)。         *In-Memory:保存在內存中。            *Isolated Storage Cache Store:系統將緩存的信息保存在獨立文件中(C:/Users/<<user name>>/AppData/Local/IsolatedStorage)。         *Data Cache Storage:將緩存數據保存在數據庫中。(需要運行CreateCachingDatabase.sql腳本)         *Custom Cache Storage:自己擴展的處理器。我們可以將數據保存在注冊表中或文本文件中。         *         * 緩存等級,在企業庫的緩存模塊中已經提供了4個緩存等級:Low,Normal,High和NotRemovable,在超出最大緩存數量后會自動根據緩存等級來移除對象。         * 過期方式,企業庫默認提供4種過期方式         * AbsoluteTime:絕對是時間過期,傳遞一個時間對象指定到時過期         * SlidingTime:緩存在最后一次訪問之后多少時間后過期,默認為2分鐘,有2個構造函數可以指定一個過期時間或指定一個過期時間和一個最后使用時         * ExtendedFormatTime :指定過期格式,以特定的格式來過期,通過ExtendedFormat.cs類來包裝過期方式,具體可參照ExtendedFormat.cs,源代碼中已經給出了很多方式         * FileDependency:依賴于文件過期,當所依賴的文件被修改則過期,這個我覺得很有用,因為在許多網站,如論壇、新聞系統等都需要大量的配置,可以將配置文件信息進行緩存,將依賴項設為配置文件,這樣當用戶更改了配置文件后通過ICacheItemRefreshAction.Refresh可以自動重新緩存。         */        ///// <summary>        ///// 自定義緩存刷新操作        ///// </summary>        //[Serializable]        //public class CacheItemRefreshAction : ICacheItemRefreshAction        //{        //    #region ICacheItemRefreshAction 成員        //    /// <summary>        //    /// 自定義刷新操作        //    /// </summary>        //    /// <param name="removedKey">移除的鍵</param>        //    /// <param name="expiredValue">過期的值</param>        //    /// <param name="removalReason">移除理由</param>        //    void ICacheItemRefreshAction.Refresh(string removedKey, object expiredValue, CacheItemRemovedReason removalReason)        //    {        //        if (removalReason == CacheItemRemovedReason.Expired)        //        {        //            CacheManager cache = CacheFactory.GetCacheManager();        //            cache.Add(removedKey, expiredValue);        //        }        //    }        //    #endregion        //}        static CacheManager CacheMgr = null;        static ETLCacheToolV2()        {            CacheMgr = CacheFactory.GetCacheManager();        }        /// <summary>        /// 獲取CacheManager實例        /// </summary>        /// <returns>CacheManager</returns>        public static CacheManager Instance()        {            return CacheMgr;        }        /// <summary>        /// 添加緩存        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        public static void Add(string key, object value)        {            CacheMgr.Add(key, value);        }        /// <summary>        /// 添加緩存_滑動過期_小時        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="hour">小時</param>        public static void AddWithHour(string key, object value, int hour)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromHours(hour)));        }        /// <summary>        ///  添加緩存_滑動過期_天        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="days">天</param>        public static void AddWithDay(string key, object value, int days)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromDays(days)));        }        /// <summary>        ///  添加緩存_滑動過期_毫秒        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="millisecond">毫秒</param>        public static void AddWithMillisecond(string key, object value, int millisecond)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromMilliseconds(millisecond)));        }        /// <summary>        ///添加緩存_滑動過期_分鐘        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="minutes">分鐘</param>        public static void AddWithMinutes(string key, object value, int minutes)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromMinutes(minutes)));        }        /// <summary>        ///添加緩存_滑動過期_秒        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="seconds">秒</param>        public static void AddWithSeconds(string key, object value, int seconds)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, null, new SlidingTime(TimeSpan.FromSeconds(seconds)));        }        /// <summary>        /// 添加緩存_滑動過期_文件依賴        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="filePath">文件路徑</param>        public static void AddFileDependency(string key, object value, string filePath)        {            FileDependency _fileDependency = new FileDependency(filePath);            CacheMgr.Add(key, value, CacheItemPriority.Normal, null, _fileDependency);        }        /// <summary>        /// 添加緩存_滑動過期_小時        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="hour">小時</param>        /// <param name="refreshAction">ICacheItemRefreshAction</param>        public static void AddWithHour(string key, object value, int hour, ICacheItemRefreshAction refreshAction)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, refreshAction, new SlidingTime(TimeSpan.FromHours(hour)));        }        /// <summary>        /// 添加緩存_滑動過期_天        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="days">天</param>        /// <param name="refreshAction">ICacheItemRefreshAction</param>        public static void AddWithDay(string key, object value, int days, ICacheItemRefreshAction refreshAction)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, refreshAction, new SlidingTime(TimeSpan.FromDays(days)));        }        /// <summary>        /// 添加緩存_滑動過期_毫秒        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="millisecond">毫秒</param>        /// <param name="refreshAction">ICacheItemRefreshAction</param>        public static void AddWithMillisecond(string key, object value, int millisecond, ICacheItemRefreshAction refreshAction)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, refreshAction, new SlidingTime(TimeSpan.FromMilliseconds(millisecond)));        }        /// <summary>        /// 添加緩存_滑動過期_分鐘        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="minutes">分鐘</param>        /// <param name="refreshAction">ICacheItemRefreshAction</param>        public static void AddWithMinutes(string key, object value, int minutes, ICacheItemRefreshAction refreshAction)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, refreshAction, new SlidingTime(TimeSpan.FromMinutes(minutes)));        }        /// <summary>        /// 添加緩存_滑動過期_秒        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="seconds">秒</param>        /// <param name="refreshAction">ICacheItemRefreshAction</param>        public static void AddWithSeconds(string key, object value, int seconds, ICacheItemRefreshAction refreshAction)        {            CacheMgr.Add(key, value, CacheItemPriority.Normal, refreshAction, new SlidingTime(TimeSpan.FromSeconds(seconds)));        }        /// <summary>        /// 添加緩存_滑動過期_文件依賴        /// </summary>        /// <param name="key">鍵</param>        /// <param name="value">值</param>        /// <param name="filePath">文件路徑</param>        /// <param name="refreshAction">ICacheItemRefreshAction</param>        public static void AddFileDependency(string key, object value, string filePath, ICacheItemRefreshAction refreshAction)        {            FileDependency _fileDependency = new FileDependency(filePath);            CacheMgr.Add(key, value, CacheItemPriority.Normal, refreshAction, _fileDependency);        }        /// <summary>        /// 清空緩存        /// </summary>        public static void Flush()        {            CacheMgr.Flush();        }        /// <summary>        /// 移出緩存        /// </summary>        /// <param name="key"></param>        public static void Remove(string key)        {            if (CacheMgr.Contains(key))                CacheMgr.Remove(key);        }        /// <summary>        /// 獲取緩存        /// </summary>        /// <param name="key">鍵</param>        /// <returns>值</returns>        public static object GetData(string key)        {            if (CacheMgr.Contains(key))                return CacheMgr.GetData(key);            return null;        }        /// <summary>        /// 獲取緩存        /// </summary>        /// <typeparam name="T">泛型</typeparam>        /// <param name="key">鍵</param>        /// <returns>值</returns>        public static T GetData<T>(string key)        {            if (CacheMgr.Contains(key))                return (T)CacheMgr.GetData(key);            return default(T);        }    }}

希望有所幫助!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇阳县| 林州市| 东乌珠穆沁旗| 达日县| 宁都县| 获嘉县| 同心县| 余干县| 黔西县| 县级市| 阿坝县| 冷水江市| 麟游县| 河津市| 依安县| 东港市| 兰溪市| 托克逊县| 乌鲁木齐市| 札达县| 新乡市| 仁布县| 皋兰县| 马公市| 盐源县| 霍林郭勒市| 长子县| 西峡县| 马山县| 清徐县| 谷城县| 高要市| 宝丰县| 贵溪市| 边坝县| 呼玛县| 沙洋县| 嘉鱼县| 林州市| 云和县| 德兴市|