首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

IsLine Framework 系列之十一:HttpContentProvider 快取存取完整指南

     編輯:關於.NET

IsLine.HttpContent.HttpContentProvider 命名空間統一封裝了 Cache、Session、Cookie 三大 HTTP 狀態管理物件,提供一致的介面契約與豐富的快取依賴、過期策略支援。本文深入解析 CacheProvider 的核心架構、兩種快取類型、依賴模式與實戰用法。

1. 介面契約體系

namespace IsLine.HttpContent.HttpContentProvider {
    public interface IBaseCapability {
        bool Remove(string Name);
        bool IsExit(string Name);
    }
    public interface ICapability : IBaseCapability {
        object GetContent(string Name);
        bool UpdateContent(string Name, object value);
    }
}
  • CookieProvider:實作 IBaseCapability(僅字串操作)
  • SessionProvider、CacheProvider:實作 ICapability(支援物件操作)

2. CacheProvider 核心架構

2.1 兩種快取類型

類型來源生命週期適用場景
HttpRuntime CacheHttpRuntime.Cache應用程式域級別全站共享、非 Web 程式亦可存取
HttpContext CacheHttpContext.Current.Cache單一請求級別僅限 Web 請求內部使用

2.2 過期策略

類型說明
滑動過期自上次存取起經過指定時間過期
絕對過期固定時間點過期,不受存取頻率影響

2.3 依賴模式

依賴類型觸發移除條件
檔案依賴指定檔案修改或刪除
SQL 依賴SQL Server 2005/2000/7.0 資料表變更(2005 支援列級)

3. CacheProvider 完整方法表

建構函式說明
CacheProvider()預設 HttpRuntime Cache,無依賴
CacheProvider(string cacheName)指定快取名稱
CacheProvider(CacheType type, string name, CacheDependencyType depType, object dep)完整指定:快取類型、名稱、依賴類型、依賴物件
核心方法說明
GetContent() / GetContent(name)取得快取內容
UpdateContent(obj) / UpdateContent(name, obj)新增/更新快取
Remove() / Remove(name)移除快取
IsExit() / IsExit(name)判斷快取是否存在

4. 列舉型別定義

namespace IsLine.HttpContent.HCDataTypeEnum {
    public enum DateType { Days, Hours, Years, Minutes }
    public enum CacheType { HttpRuntime, HttpContext }
    public enum CacheDependencyType { Sql, File, None }
    public enum RemoveType { RemoveInput, RemoveAllExcludeInput }
}

5. 關鍵行為:快取名稱的動態切換

var cp = new CacheProvider("A");
cp.GetContent();        // 存取 "A"
cp.IsExit("B");         // 檢查 "B"
cp.GetContent();        // 此時存取變為 "B"!後續無參數呼叫將跟隨最後指定名稱

注意:帶名稱參數的呼叫會暫時切換內部預設快取名稱,影響後續無參數呼叫。

6. 結語

CacheProvider 以統一介面抽象了 ASP.NET 複雜的快取機制,支援雙快取類型、雙過期策略、雙依賴模式,並透過列舉型別實現型別安全配置。下一篇將探討 SessionProvider 與 CookieProvider 的進階整合應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved