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

擴充 ASP.NET 2.0 資源提供者模型(二):資料庫儲存與 ResourceProviderFactory 實作

     編輯:關於ASP.NET

第二篇著重於將本地化資源儲存於資料庫,並實作自訂 ResourceProviderFactory 與 IResourceProvider,建立完整的資料庫驅動資源提供管線。

資料庫資源表結構

欄位說明
resourceType資源分類:頁面虛擬路徑(本地資源)或自訂名稱(全域資源,如 Glossary、CommonTerms)
cultureCode文化特性代碼(ISO 標準),支援擴充
resourceKey資源鍵值,本地資源採 控件前綴.屬性名 慣例
resourceValue資源內容,支援 4KB 字串

主鍵為 (resourceType, cultureCode, resourceKey) 複合鍵。

資源類型命名慣例

  • 本地資源:頁面相對路徑,如 Expressions.aspx、SubDir1/Expressions.aspx,區分同名頁面。
  • 全域資源:自訂分類名稱,範例使用 Glossary、CommonTerms、Config。

資料存取層 StringResourcesDALC

封裝資料庫查詢邏輯,依提供者模式提供 GetObject、GetResourceEnumerator 等方法,支援快取與效能優化。

ResourceProviderFactory 抽象類別與自訂實作

public abstract class ResourceProviderFactory
{
    protected ResourceProviderFactory();
    public abstract IResourceProvider CreateGlobalResourceProvider(string classKey);
    public abstract IResourceProvider CreateLocalResourceProvider(string virtualPath);
}

自訂工廠繼承此類別,兩個建立方法分別回傳實作 IResourceProvider 的全域/本地提供者實例。

IResourceProvider 介面關鍵成員

  • GetObject(string resourceKey, CultureInfo culture):取得單一資源值。
  • GetResourceEnumerator(CultureInfo culture):列舉所有資源,供設計工具與強型別類別生成使用。

整合設定

在 web.config 註冊自訂工廠:

<system.web>
  <globalization resourceProviderFactoryType="CustomResourceProviderFactory, App_Code" />
</system.web>

架構優勢

  • 資源集中管理於資料庫,支援多伺服器陣列同步。
  • 支援執行期動態更新資源,無需重新編譯部署。
  • 相容 Visual Studio 2005 「產生本地資源」與資源編輯器設計時體驗。
  • 可擴充支援多租戶、客戶端自訂等複雜場景。

此篇奠定了資料庫資源儲存的核心基礎設施,為第三篇表達式建構器擴充鋪路。

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