index.md 2.7 KB

--- layout: home

hero: name: Apq.Cfg text: 高性能 .NET 配置组件库 tagline: 支持多种配置源、动态重载、依赖注入集成 image:

src: /logo.svg
alt: Apq.Cfg

actions:

- theme: brand
  text: 快速开始
  link: /guide/
- theme: alt
  text: 在 Gitee 上查看
  link: https://gitee.com/apq/Apq.Cfg

features:

  • icon: 🚀 title: 高性能 details: 基于值缓存和快速集合优化,提供卓越的配置读取性能,支持高并发场景
  • icon: 📦 title: 多配置源 details: 支持 JSON、YAML、XML、INI、TOML 等本地格式,以及 Consul、Redis、Apollo、Vault 等远程配置中心
  • icon: 🔄 title: 动态重载 details: 支持配置变更监听和自动重载,无需重启应用即可更新配置,支持多种重载策略
  • icon: 💉 title: 依赖注入 details: 完美集成 Microsoft.Extensions.DependencyInjection,支持 IOptions/IOptionsSnapshot/IOptionsMonitor 模式
  • icon: 🔧 title: 易于扩展 details: 提供清晰的扩展接口,轻松实现自定义配置源,支持源生成器自动生成配置类
  • icon: 📝 title: 类型安全 details: 支持强类型配置绑定和源生成器,编译时检查配置错误,减少运行时异常 ---
## 快速安装 ::: code-group ```bash [.NET CLI] # 安装核心包 dotnet add package Apq.Cfg # 安装 YAML 支持 dotnet add package Apq.Cfg.Yaml # 安装 Consul 支持 dotnet add package Apq.Cfg.Consul ``` ```xml [PackageReference] ``` ::: ## 简单示例 ```csharp using Apq.Cfg; // 创建配置 var cfg = new CfgBuilder() .AddJsonFile("config.json") .AddYamlFile("config.yaml", optional: true) .AddEnvironmentVariables() .Build(); // 读取配置 var connectionString = cfg["Database:ConnectionString"]; var timeout = cfg.GetValue("Database:Timeout"); // 绑定到强类型对象 var dbConfig = cfg.GetSection("Database").Get(); ``` ## 支持的配置源 | 类型 | 配置源 | NuGet 包 | |------|--------|----------| | 本地 | JSON | Apq.Cfg (内置) | | 本地 | YAML | Apq.Cfg.Yaml | | 本地 | XML | Apq.Cfg.Xml | | 本地 | INI | Apq.Cfg.Ini | | 本地 | TOML | Apq.Cfg.Toml | | 本地 | 环境变量 | Apq.Cfg (内置) | | 远程 | Consul | Apq.Cfg.Consul | | 远程 | Redis | Apq.Cfg.Redis | | 远程 | Apollo | Apq.Cfg.Apollo | | 远程 | Vault | Apq.Cfg.Vault | | 远程 | Etcd | Apq.Cfg.Etcd | | 远程 | Zookeeper | Apq.Cfg.Zookeeper | | 远程 | Nacos | Apq.Cfg.Nacos |