亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

Enterprise Library for .NET Framework 2.0緩存使用實例

2020-01-24 02:30:55
字體:
來源:轉載
供稿:網友

Enterprise Library for .NET Framework 2.0 是微軟發布的企業庫,它支持.NET Framework 2.0。并且由一系列的企業應用程序塊來構成。本文即以實例展示了Enterprise Library for .NET Framework 2.0緩存的使用方法,供大家參考。

關鍵代碼如下:

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);    }  }}

讀者可在自身項目中對上述代碼加以測試,相信會對大家的C#程序設計起到一定的幫助作用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久免费av| 亚洲精品国产美女| 国产伦精品免费视频| 欧美日韩国产一区二区三区| 久久久久久久网站| 亚洲女成人图区| 欧美激情a∨在线视频播放| 欧美午夜片在线免费观看| 日韩精品免费在线播放| 日韩欧美国产视频| 亚洲午夜未满十八勿入免费观看全集| 亚洲成人久久久| 亚洲激情电影中文字幕| 欧美一级片在线播放| 亚洲国产精品va在线观看黑人| 日韩av免费在线| 欧美网站在线观看| 久久久久久免费精品| 亚洲欧洲成视频免费观看| 精品亚洲国产视频| 国产一区二区在线播放| 精品毛片三在线观看| 日韩专区在线观看| 成人中文字幕在线观看| 欧美一区三区三区高中清蜜桃| 欧美激情精品久久久久久| 久热精品视频在线观看一区| 欧美人与物videos| 久久久久国色av免费观看性色| 日韩中文在线不卡| 国产精品久久久久久av福利软件| 亚洲第一区在线| 欧美成年人视频| 久久精品国产亚洲精品2020| 亚洲男女性事视频| 色婷婷综合成人| 亚洲成人av资源网| 日本精品视频在线播放| 国产精品扒开腿做爽爽爽视频| 欧美激情第三页| 国产精品无av码在线观看| 一区二区三区无码高清视频| 亚洲人成电影网站色| 日本精品久久久| 亚洲第一区第一页| 午夜欧美不卡精品aaaaa| 国产综合在线视频| 久久久之久亚州精品露出| 夜夜狂射影院欧美极品| 国产一区二区三区在线视频| 色噜噜国产精品视频一区二区| 国产一区二区美女视频| 亚洲成人国产精品| 亚洲第一在线视频| 欧美精品国产精品日韩精品| 亚洲片在线观看| 久久精品视频播放| 一区二区三区四区在线观看视频| 中文字幕精品影院| 亚洲毛片在线观看.| 日韩女优在线播放| 97国产真实伦对白精彩视频8| 精品福利一区二区| 在线亚洲国产精品网| 亚洲欧美中文字幕在线一区| 97国产成人精品视频| 51久久精品夜色国产麻豆| 最新亚洲国产精品| 久久久久久久久91| 欧美做受高潮电影o| 欧美精品成人91久久久久久久| 欧美性jizz18性欧美| 综合欧美国产视频二区| 欧美大全免费观看电视剧大泉洋| 亚洲一区二区中文字幕| 久久精品成人欧美大片| 永久免费毛片在线播放不卡| 一区二区三区高清国产| 成人精品久久久| 欧美日韩免费网站| 91九色国产视频| 国产一区二区动漫| 国产日韩欧美夫妻视频在线观看| 亚洲成成品网站| 国产97色在线| 奇门遁甲1982国语版免费观看高清| 久久人体大胆视频| 亚洲欧洲日产国码av系列天堂| 欧美日韩人人澡狠狠躁视频| 91精品久久久久久久久不口人| 日韩在线观看免费高清| 成人网欧美在线视频| 91精品视频网站| 欧美超级免费视 在线| 久久99精品久久久久久噜噜| 久久精品国产亚洲| 永久555www成人免费| 欧美精品18videosex性欧美| 亚洲欧洲日产国产网站| 亚洲人成在线电影| 欧美激情极品视频| 2019中文在线观看| 久久乐国产精品| 日韩中文字幕在线观看| 色哟哟网站入口亚洲精品| 亚洲国产精品一区二区久| 精品亚洲永久免费精品| 欧美性jizz18性欧美| 亚洲aⅴ日韩av电影在线观看| 最近中文字幕mv在线一区二区三区四区| 久久久久国产视频| 欧美放荡办公室videos4k| 在线电影av不卡网址| 精品亚洲一区二区三区在线观看| 亚洲国内精品在线| 久久久精品久久| 一区二区三区www| 欧美成人精品影院| 精品成人69xx.xyz| 97在线观看免费| 亚洲国产欧美一区| 国产精品6699| 中文字幕亚洲综合久久| 91免费观看网站| 26uuu国产精品视频| 91久久久久久久一区二区| 国产在线播放91| 91久久精品视频| 最近免费中文字幕视频2019| 亚洲国产小视频在线观看| 欧美色视频日本版| 日韩大片在线观看视频| 国产一区二区三区中文| 国产精品久久久久久影视| 亚州av一区二区| 日韩男女性生活视频| 国产视频精品va久久久久久| 国产精品视频26uuu| 一本久久综合亚洲鲁鲁| 欧美日韩成人在线观看| 日韩精品中文字幕在线播放| 欧美性高潮床叫视频| 亚洲天堂2020| 日韩国产激情在线| 国产精品香蕉在线观看| 啪一啪鲁一鲁2019在线视频| 亚洲视频欧洲视频| 国产一区二区免费| 精品久久香蕉国产线看观看gif| 欧美电影免费观看| 国产精品自产拍在线观看中文| 亚洲一区第一页| 久久亚洲一区二区三区四区五区高| 国产精品成人va在线观看| 日本亚洲精品在线观看| 伦理中文字幕亚洲| 国产又爽又黄的激情精品视频| 亚洲综合精品一区二区| 日韩精品极品毛片系列视频| 国产精品久久久久久中文字| 国语自产精品视频在免费| 日韩高清有码在线| 欧美激情欧美激情在线五月| 亚洲天堂精品在线|