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

黄中银 90cc254083 文档更新 11 ore în urmă
.codegeex 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă
.roo 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă
.workflow cdc9817c56 纠正工作目录 1 zi în urmă
Apq.Cfg 90cc254083 文档更新 11 ore în urmă
Apq.Cfg.WebUI bd546b37d6 添加 WebApi 时配置 CORS 22 ore în urmă
.gitignore 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă
CLAUDE.md 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă
LICENSE 670ed78c73 0.0.1 2 săptămâni în urmă
README.md 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă
upp.exe 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă
upp.json 23782aba6e v1.1.6: Apq.Cfg 统一配置组件库 1 zi în urmă

README.md

# Apq.Cfg

Gitee Documentation

.NET 统一配置组件库,支持多种配置格式和远程配置中心。

📖 在线文档https://apq-cfg.vercel.app/

特性

  • 多格式支持:JSON、INI、XML、YAML、TOML、Env
  • 远程配置中心:Consul、Etcd、Nacos、Apollo、Zookeeper、Vault
  • 配置加密脱敏:AES-GCM、ChaCha20、RSA、SM4 等多种算法
  • 多层级合并:高层级覆盖低层级,支持可写配置
  • 热重载:文件变更自动检测、防抖、增量更新
  • 源生成器:Native AOT 支持,零反射绑定
  • Web 管理:RESTful API 和 Web 界面,支持远程配置管理

安装

dotnet add package Apq.Cfg

快速开始

using Apq.Cfg;

// 构建配置
var cfg = new CfgBuilder()
    .AddJson("config.json")
    .AddJson("config.local.json", level: 1, writeable: true, isPrimaryWriter: true)
    .Build();

// 读取配置
var host = cfg["Database:Host"];
var port = cfg.GetValue<int>("Database:Port");

// 使用配置节
var db = cfg.GetSection("Database");
var name = db["Name"];

// 修改并保存
cfg["App:LastRun"] = DateTime.Now.ToString();
await cfg.SaveAsync();

Web API 集成

为应用添加配置管理 API:

using Apq.Cfg;
using Apq.Cfg.WebApi;

var builder = WebApplication.CreateBuilder(args);

var cfg = new CfgBuilder()
    .AddJson("config.json")
    .AddJson("config.local.json", level: 5, writeable: true, isPrimaryWriter: true)
    .Build();

// 注册配置和 API 服务
builder.Services.AddSingleton<ICfgRoot>(cfg);
builder.Services.AddApqCfgWebApi(options =>
{
    options.Authentication = AuthenticationType.ApiKey;
    options.ApiKey = "your-secret-key";
});

var app = builder.Build();
app.UseApqCfgWebApi();
app.MapApqCfgWebApi();
app.Run();

API 文档 UI 根据目标框架自动选择:

  • .NET 8:Swagger UI (/swagger)
  • .NET 10+:Scalar (/scalar/v1)

配置源层级

层级 用途 配置源
0-99 本地文件 Json, Ini, Xml, Yaml, Toml
100-199 远程存储 Redis, Database
200-299 配置中心 Consul, Etcd, Nacos, Apollo, Zookeeper
300-399 密钥管理 Vault
400+ 环境变量 Env, EnvironmentVariables

NuGet 包

包名 说明
Apq.Cfg 核心库(JSON、环境变量)
Apq.Cfg.Ini INI 格式
Apq.Cfg.Xml XML 格式
Apq.Cfg.Yaml YAML 格式
Apq.Cfg.Toml TOML 格式
Apq.Cfg.Env .env 文件
Apq.Cfg.Redis Redis 存储
Apq.Cfg.Database 数据库存储
Apq.Cfg.Consul Consul 配置中心
Apq.Cfg.Etcd Etcd 配置中心
Apq.Cfg.Nacos Nacos 配置中心
Apq.Cfg.Apollo Apollo 配置中心
Apq.Cfg.Zookeeper Zookeeper 配置中心
Apq.Cfg.Vault HashiCorp Vault
Apq.Cfg.Crypto 配置加密脱敏
Apq.Cfg.SourceGenerator 源生成器 (Native AOT)
Apq.Cfg.WebApi RESTful API 接口
Apq.Cfg.WebUI Web 管理界面

支持的框架

.NET 8.0 / 10.0 (LTS)

构建与测试

dotnet build
dotnet test

许可证

MIT License

作者