[ConfigurationPattern(TPattern.XML)]
public class MyXMLCfg : Configuration
{
const string MY_XML_CFG_PATH = @"\myxmlcfg.XML";
public MyXMLCfg() : base(MY_XML_CFG_PATH)
{
m_RandId = new Random().Next();
}
private string m_Name;
private int m_RandId;
#region Public Properties
public string Name
{
get => m_Name;
set => m_Name = value;
}
[ConfigurationIgnore]
[XmlIgnore] // 雙重保險:元件層面 + XML 序列化層面
public int RandId
{
get => m_RandId;
set => m_RandId = value;
}
#endregion
}
Open()ConfigurationPattern 選擇序列化器cfg.Name = "NewName")Close()
var cfg = new MyXMLCfg();
// 建構後、Open 前任意時刻修改
cfg.FileName = @"C:\Custom\Path\config.xml";
cfg.Open();
cfg.ReadOnly = true;
cfg.Open();
// 讀取資料...
cfg.Close(); // 不會寫入檔案
[ConfigurationIgnore] 為元件通用忽略標記,[XmlIgnore] 針對 XML 序列化器。雙重標註確保在任何序列化路徑下都不會持久化該欄位。
var cfg = new MyXMLCfg();
cfg.Open();
Console.WriteLine($"Name: {cfg.Name}, RandId: {cfg.RandId}");
// 修改配置
cfg.Name = "UpdatedName";
cfg.Close(); // 自動保存至 XML