|
|
3 дней назад | |
|---|---|---|
| .workflow | 5 дней назад | |
| Apq.Cfg | 3 дней назад | |
| Apq.Cfg.Database | 3 дней назад | |
| Apq.Cfg.Ini | 6 дней назад | |
| Apq.Cfg.Redis | 3 дней назад | |
| Apq.Cfg.Tests.Net6 | 3 дней назад | |
| Apq.Cfg.Tests.Net8 | 3 дней назад | |
| Apq.Cfg.Tests.Net9 | 3 дней назад | |
| Apq.Cfg.Tests.Shared | 3 дней назад | |
| Apq.Cfg.Toml | 6 дней назад | |
| Apq.Cfg.Xml | 6 дней назад | |
| Apq.Cfg.Yaml | 6 дней назад | |
| Samples | 5 дней назад | |
| buildTools | 3 дней назад | |
| .gitignore | 5 дней назад | |
| Apq.Cfg.sln | 6 дней назад | |
| Directory.Build.props | 3 дней назад | |
| LICENSE | 6 дней назад | |
| README.md | 3 дней назад |
统一配置管理系统,支持多种配置格式和多层级配置合并。
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.Shared/ # 共享测试代码
├── Apq.Cfg.Tests.Net6/ # .NET 6 测试项目
├── Apq.Cfg.Tests.Net8/ # .NET 8 测试项目
├── Apq.Cfg.Tests.Net9/ # .NET 9 测试项目
└── Samples/ # 示例项目
.NET 6.0 / 7.0 / 8.0 / 9.0
using Apq.Cfg;
var cfg = new CfgBuilder()
.AddJson("appsettings.json", level: 0, writeable: false)
.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
| 测试类 | 测试数量 | 说明 |
|---|---|---|
| JsonCfgTests | 8 | JSON 配置源测试 |
| EnvVarsCfgTests | 4 | 环境变量配置源测试 |
| IniCfgTests | 5 | INI 文件配置源测试 |
| XmlCfgTests | 5 | XML 文件配置源测试 |
| YamlCfgTests | 6 | YAML 文件配置源测试 |
| TomlCfgTests | 6 | TOML 文件配置源测试 |
| RedisCfgTests | 5 | Redis 配置源测试 |
| DatabaseCfgTests | 5 | 数据库配置源测试 |
| CfgRootExtensionsTests | 4 | 扩展方法测试 |
| CfgBuilderAdvancedTests | 6 | 高级功能测试 |
| API | Json | Env | Ini | Xml | Yaml | Toml | Redis | DB |
|---|---|---|---|---|---|---|---|---|
| ICfgRoot | ||||||||
Get(key) |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Get<T>(key) |
✅ | - | ✅ | ✅ | ✅ | ✅ | - | - |
Exists(key) |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Set(key, value) |
✅ | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Set(key, value, targetLevel) |
✅ | - | - | - | - | - | - | - |
Remove(key) |
✅ | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Remove(key, targetLevel) |
✅ | - | - | - | - | - | - | - |
SaveAsync() |
✅ | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
SaveAsync(targetLevel) |
✅ | - | - | - | - | - | - | - |
ToMicrosoftConfiguration() |
✅ | - | - | - | - | - | - | - |
| CfgBuilder | ||||||||
AddJson() |
✅ | - | - | - | - | - | - | - |
AddEnvironmentVariables() |
- | ✅ | - | - | - | - | - | - |
WithEncodingConfidenceThreshold() |
✅ | - | - | - | - | - | - | - |
Build() |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| CfgRootExtensions | ||||||||
TryGet<T>() |
✅ | - | - | - | - | - | - | - |
GetRequired<T>() |
✅ | - | - | - | - | - | - | - |
| 扩展包 | ||||||||
AddIni() |
- | - | ✅ | - | - | - | - | - |
AddXml() |
- | - | - | ✅ | - | - | - | - |
AddYaml() |
- | - | - | - | ✅ | - | - | - |
AddToml() |
- | - | - | - | - | ✅ | - | - |
AddRedis() |
- | - | - | - | - | - | ✅ | - |
AddDatabase() |
- | - | - | - | - | - | - | ✅ |
| 多层级覆盖 | ||||||||
| 高层级覆盖低层级 | ✅ | ✅ | - | - | - | - | ✅ | ✅ |
说明:
-表示该配置源不支持此功能(如环境变量只读)或该功能只需测试一次
100% - 所有公开 API 均已覆盖测试
| 框架 | 测试数量 | 状态 | 测试日期 |
|---|---|---|---|
| .NET 6.0 | 54 | ✅ 全部通过 | 2025-12-22 |
| .NET 8.0 | 54 | ✅ 全部通过 | 2025-12-22 |
| .NET 9.0 | 54 | ✅ 全部通过 | 2025-12-22 |
MIT License