專案需儲存具邏輯結構的設定資料(如多層選單)。傳統做法:
既然 .NET 內建 ConfigurationManager 管理 App.config/Web.config,為何不自行設計強型別設定管理器?
using System.Collections.Generic;
using System.Xml.Serialization;
public class Menu
{
public Menu() : this("", "", "") { }
public Menu(string name, string text, string icon) { Name = name; Text = text; IconName = icon; SubMenus = new SubMenus(); }
[XmlAttribute("Name")] public string Name { get; set; }
[XmlAttribute("Text")] public string Text { get; set; }
[XmlAttribute("IconName")] public string IconName { get; set; }
public SubMenus SubMenus { get; set; } // 遞迴巢狀
}
public class SubMenus : List
MenuStrip ms = new MenuStrip();
ms.SubMenus.Add(new Menu("mnuFile", "檔案(&F)", "") {
SubMenus = { new Menu("mnuNew", "新建", ""), new Menu("mnuSave", "儲存", ""), new Menu("mnuSaveAs", "另存新檔", "") }
});
ms.SubMenus.Add(new Menu("mnuEdit", "編輯(&E)", "") {
SubMenus = { new Menu("mnuCopy", "複製", ""), new Menu("mnuDel", "刪除", ""), new Menu("mnuCut", "剪下", "") }
});
ms.SubMenus.Add(new Menu("mnuView", "檢視(&V)", ""));
ms.Save(@"...\Menu.Config");