元件透過屬性標註實現聲明式配置映射,INI 模式專用屬性:
| 屬性 | 用途 | 必要性 |
|---|---|---|
[ConfigurationPattern(TPattern.INI, "DefaultSection")] | 類別層級,指定模式與預設 Section | 必須 |
[Section("SectionName")] | 屬性層級,指定所屬 Section,省略則用預設 | 選用 |
[Key("KeyName", defaultValue)] | 屬性層級,指定鍵名、預設值、大小寫敏感 | 選用 |
[ConfigurationIgnore] | 標記不參與配置持久化的屬性 | 選用 |
[ConfigurationPattern(TPattern.INI, "DefaultSection")]
class MyIniCfg : Configuration
{
const string MY_INI_CFG_PATH = @"\myXMLcfg.ini";
public MyIniCfg() : base(MY_INI_CFG_PATH)
{
m_RandId = new Random().Next();
}
[Section("PrivateInfo")]
public string Name { get; set; }
[Section("PrivateInfo")]
[Key("Age", 18)]
public byte Age { get; set; }
[Section("ClassInfo")]
[Key("Class")]
public string ClassName { get; set; }
[Section("ClassInfo")]
[Key("Year", 1945)]
public uint Year { get; set; }
[ConfigurationIgnore]
public int RandId { get; set; }
}
所有配置模式(XML、INI、JSON 等)共享相同操作流程:
var cfg = new MyIniCfg();
cfg.ReadOnly = true; // 唯讀模式,關閉時不保存
cfg.Open();
Console.WriteLine($"Name: {cfg.Name}, Age: {cfg.Age}");
cfg.Close(); // 非唯讀模式下自動持久化變更
ConfigurationPatternAttribute.cs 中的 TPattern 列舉,新增模式名稱IXmlPattern、IIniPattern 實作自訂介面Configuration 外)