計劃以「入門篇、進階篇、剖析篇」三篇完整介紹每個應用程式區塊。入門篇針對新手,詳細說明使用步驟;進階篇深入應用與擴展;剖析篇分析底層與類別設計。觀點純屬個人理解,歡迎指教。
幾乎所有應用程式都需組態資訊(資料庫連線、複雜使用者設定等)。如何儲存、存取組態是常見難題。配置區塊提供:
前提:專案已有 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);
}
}


EditorSettings
EditorSettings.config(相對路徑)


EditorSettings.configcopy "$(ProjectDir)\*.config" "$(TargetDir)"
Microsoft.Practices.EnterpriseLibrary.Common.dll、Configuration.dllusing Microsoft.Practices.EnterpriseLibrary.Configuration;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);
// 顯示結果...
}
}
private void readXmlConfigDataButton_Click(object sender, EventArgs e)
{
Cursor = Cursors.WaitCursor;
EditorFontData configData = ConfigurationManager.GetConfiguration("EditorSettings") as EditorFontData;
// 顯示結果...
Cursor = Cursors.Arrow;
}
入門篇完成自訂組態類別建立、組態工具設定 Storage/Transformer、程式碼讀寫基本流程。下篇將介紹進階主題與剖析設計。