黄中银 7569ebfae2 标签 1 ساعت پیش
..
Apq.Cfg.Xml.csproj 7569ebfae2 标签 1 ساعت پیش
CfgBuilderExtensions.cs 670ed78c73 0.0.1 6 روز پیش
README.md 825e944450 依赖注入支持 1 روز پیش
XmlFileCfgSource.cs 622499f87b 编码处理流程文档 1 روز پیش

README.md

Apq.Cfg.Xml

Gitee

XML 文件配置源扩展包。

仓库地址https://gitee.com/apq/Apq.Cfg

依赖

  • Apq.Cfg
  • Microsoft.Extensions.Configuration.Xml(版本随目标框架:net6.0→6.0.0, net7.0→7.0.0, net8.0→8.0.0, net9.0→9.0.0)

用法

using Apq.Cfg;
using Apq.Cfg.Xml;

var cfg = new CfgBuilder()
    .AddXml("config.xml", level: 0, writeable: true)
    .Build();

// 使用配置节访问
var dbSection = cfg.GetSection("Database");
var connStr = dbSection.Get("ConnectionString");

// 枚举子键
foreach (var key in dbSection.GetChildKeys())
{
    Console.WriteLine($"{key}: {dbSection.Get(key)}");
}

方法签名

public static CfgBuilder AddXml(
    this CfgBuilder builder,
    string path,
    int level,
    bool writeable = false,
    bool optional = true,
    bool reloadOnChange = true,
    bool isPrimaryWriter = false)

参数说明

参数 说明
path XML 文件路径
level 配置层级,数值越大优先级越高
writeable 是否可写
optional 文件不存在时是否忽略
reloadOnChange 文件变更时是否自动重载
isPrimaryWriter 是否为默认写入目标

XML 格式示例

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <AppName>MyApp</AppName>
    <Database>
        <ConnectionString>Server=localhost;Database=mydb</ConnectionString>
        <Timeout>30</Timeout>
    </Database>
    <Logging>
        <Level>Information</Level>
    </Logging>
</configuration>

配置键映射:

  • <AppName> -> "AppName"
  • <Database><ConnectionString> -> "Database:ConnectionString"
  • <Logging><Level> -> "Logging:Level"

许可证

MIT License

作者

仓库