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

BlogEngine.NET 架構與原始碼分析系列 (4) 全域設定 - BlogSettings

     編輯:關於ASP.NET

BlogSettings 職責

單例模式管理部落格全域設定:主題、語系、時區、郵件、評論規則等。資料庫僅作持久化,執行期狀態完全在記憶體物件。

核心程式碼

public static event EventHandler<EventArgs> Changed;
private static BlogSettings blogSettingsSingleton;

public static BlogSettings Instance
{
    get
    {
        if (blogSettingsSingleton == null)
            blogSettingsSingleton = new BlogSettings();
        return blogSettingsSingleton;
    }
}
  • 屬性對應 web.config appSettings 或資料庫設定表。
  • Changed 事件通知外部模組設定已變更 (如主題切換即時生效)。

與外界互動

  • 後台管理頁面:讀寫屬性 → Save() 持久化 → 觸發 Changed。
  • Provider 儲存:BlogProvider.SaveSettings() 序列化至 XML/資料庫。
  • 啟動載入:BlogProvider.LoadSettings() 反序列化填充單例。

設計優勢

  1. 單例保證全程唯一設定來源。
  2. 事件驅動讓擴展模組即時響應設定變更。
  3. 儲存機制抽象化,支援多種 Provider 熱插拔。

總結

BlogSettings 以單例 + 事件 + Provider 三重保障,實現高內聚、低耦合、可擴充的全域設定管理。

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