统一配置管理系统,支持多种配置格式和多层级配置合并。

黄中银 5ecf2e1e7c 示例项目不应打包 6 dagen geleden
.workflow 6e41ff22ec 流水线 6 dagen geleden
Apq.Cfg 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Database 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Ini 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Redis 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Tests.Net6 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Tests.Net8 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Tests.Net9 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Tests.Shared 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Toml 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Xml 670ed78c73 0.0.1 6 dagen geleden
Apq.Cfg.Yaml 670ed78c73 0.0.1 6 dagen geleden
Samples 5ecf2e1e7c 示例项目不应打包 6 dagen geleden
buildTools efc31c6d05 脚本放到子目录中 6 dagen geleden
.gitignore efc31c6d05 脚本放到子目录中 6 dagen geleden
Apq.Cfg.sln 670ed78c73 0.0.1 6 dagen geleden
Directory.Build.props 5ecf2e1e7c 示例项目不应打包 6 dagen geleden
LICENSE 670ed78c73 0.0.1 6 dagen geleden
README.md 670ed78c73 0.0.1 6 dagen geleden

README.md

Apq.Cfg

统一配置管理系统,支持多种配置格式和多层级配置合并。

项目结构

Apq.Cfg/
├── Apq.Cfg/                 # 核心库(JSON + 环境变量)
├── Apq.Cfg.Ini/             # INI 文件扩展
├── Apq.Cfg.Xml/             # XML 文件扩展
├── Apq.Cfg.Yaml/            # YAML 文件扩展
├── Apq.Cfg.Toml/            # TOML 文件扩展
├── Apq.Cfg.Redis/           # Redis 扩展
├── Apq.Cfg.Database/        # 数据库扩展
├── Apq.Cfg.Tests.Net6/      # .NET 6 测试项目
├── Apq.Cfg.Tests.Net8/      # .NET 8 测试项目
└── Apq.Cfg.Tests.Net9/      # .NET 9 测试项目

特性

  • 多格式支持(JSON、INI、XML、YAML、TOML、Redis、数据库)
  • 智能编码检测与统一 UTF-8 写入
  • 多层级配置合并
  • 可写配置与热重载
  • Microsoft.Extensions.Configuration 兼容

支持的框架

.NET 6.0 / 7.0 / 8.0 / 9.0

快速开始

using Apq.Cfg;

var cfg = new CfgBuilder()
    .AddJson("appsettings.json", level: 0)
    .AddJson("appsettings.local.json", level: 1, writeable: true, isPrimaryWriter: true)
    .AddEnvironmentVariables(level: 2, prefix: "APP_")
    .Build();

// 读取配置
var value = cfg.Get("Database:ConnectionString");

// 修改配置
cfg.Set("App:LastRun", DateTime.Now.ToString());
await cfg.SaveAsync();

构建与测试

dotnet build
dotnet test

许可证

MIT License

作者