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

C# 自動化配置元件(四):INI 格式支援與擴展機制

     編輯:關於C語言

INI 配置模式屬性體系

元件透過屬性標註實現聲明式配置映射,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(); // 非唯讀模式下自動持久化變更

自訂配置模式擴展指南

  1. 修改 ConfigurationPatternAttribute.cs 中的 TPattern 列舉,新增模式名稱
  2. 參考現有 IXmlPattern、IIniPattern 實作自訂介面
  3. 註冊至元件工廠,即可無縫整合

設計優勢

  • 零侵入式:實體類別無需繼承特定基類(除 Configuration 外)
  • 型別安全:編譯期檢查屬性型別與配置值相容性
  • 預設值機制:屬性初始化值自動作為配置預設值
  • 多模式統一:同一實體類別可透過切換屬性支援多種格式
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved