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

Enterprise Library 實戰系列(一):配置應用程式區塊——入門篇

     編輯:關於.NET

前言

計劃以「入門篇、進階篇、剖析篇」三篇完整介紹每個應用程式區塊。入門篇針對新手,詳細說明使用步驟;進階篇深入應用與擴展;剖析篇分析底層與類別設計。觀點純屬個人理解,歡迎指教。

一、配置區塊概述

幾乎所有應用程式都需組態資訊(資料庫連線、複雜使用者設定等)。如何儲存、存取組態是常見難題。配置區塊提供:

  • 通用配置管理解決方案,支援多種儲存來源
  • 簡單讀/寫介面
  • 支援不同儲存提供者
  • 支援組態加密
  • 支援動態更新
  • 支援複雜組態物件

適用場景

  • 執行時讀寫複雜組態
  • 組態檔含敏感資料(密碼)
  • 協助開發人員正確存取組態
  • 部署後系統管理員需工具修改 XML

二、使用步驟

前提:專案已有 Web.config/App.config。

第一步:建立自訂組態資料類別

需可序列化(XmlSerializer),複雜度不限:

[Serializable]
public class EditorFontData
{
    private string name;
    private float size;
    private int style;

    public EditorFontData() { }
    public string Name { get { return name; } set { name = value; } }
    public float Size { get { return size; } set { size = value; } }
    public int Style { get { return style; } set { style = value; } }

    public override string ToString()
    {
        return String.Format("Name = {0}; Size = {1}; Style = {2}", name, size, style);
    }
}

第二步:組態工具設定應用程式

  1. 開啟組態工具,載入 App.config
  2. 新增 Configuration Application Block
    新增區塊
  3. 新增 Configuration Section,每區段需設定 Storage Provider 與 Transformer
    新增區段
  4. 重命名區段為 EditorSettings
    重命名
  5. 新增 XML File Storage Provider,檔案名 EditorSettings.config(相對路徑)
    Storage Provider 檔案路徑
  6. 新增 XML Serializer Transformer
    Transformer
  7. 儲存全部,專案會出現 EditorSettings.config
  8. 建置後事件複製組態檔:
copy "$(ProjectDir)\*.config" "$(TargetDir)"

第三步:程式碼存取組態資料

  1. 加入參考:Microsoft.Practices.EnterpriseLibrary.Common.dll、Configuration.dll
  2. using Microsoft.Practices.EnterpriseLibrary.Configuration;
  3. 寫入(整個區段覆蓋,元組態必須含區段定義):
private void writeXmlConfigDataButton_Click(object sender, EventArgs e)
{
    EditorFontData configData = new EditorFontData();
    if (fontDialog.ShowDialog() == DialogResult.OK)
    {
        configData.Name = fontDialog.Font.Name;
        configData.Size = fontDialog.Font.Size;
        configData.Style = Convert.ToInt32(fontDialog.Font.Style);
        ConfigurationManager.WriteConfiguration("EditorSettings", configData);
        // 顯示結果...
    }
}
  1. 讀取(注意強制轉型):
private void readXmlConfigDataButton_Click(object sender, EventArgs e)
{
    Cursor = Cursors.WaitCursor;
    EditorFontData configData = ConfigurationManager.GetConfiguration("EditorSettings") as EditorFontData;
    // 顯示結果...
    Cursor = Cursors.Arrow;
}

結語

入門篇完成自訂組態類別建立、組態工具設定 Storage/Transformer、程式碼讀寫基本流程。下篇將介紹進階主題與剖析設計。

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