Zeek.Settings 10.0.41
Zeek.Settings
Zeek.Settings 是用户可写 settings 模块,负责桌面应用的本地用户设置读写、保存、重载、重置和字段保护。
默认模型是一份 appsettings.json:Core 负责启动时读取并提供 IConfiguration,Zeek.Settings 负责把已注册的强类型 settings section 写回同一份文件。文件 replace / move 是提交点;提交后的配置根刷新为 best-effort,失败不会反转磁盘和 typed snapshot 的成功结果。
适用场景
- 保存用户偏好、窗口设置、最近路径、UI 选项等本地可写配置。
- 需要 AOT 友好的
JsonTypeInfo<TSettings>settings 序列化。 - 需要让 Core 启动读取、
ISettings<T>写回和IConfiguration原始观察围绕同一份 appsettings 文件工作。 - 需要让
[Protected]字段默认使用跨平台持久 key 文件和 AES-256-GCM 落盘。
安装 / 引用
<PackageReference Include="Zeek.Settings" />
快速开始
在根模块依赖 SettingsModule,并按正式文档显式注册 settings 类型和 JSON metadata。业务代码通过 ISettings<TSettings> 读取、更新和保存。
受保护字段无需应用注册平台实现。默认密钥首次生成后保存到主配置文件同目录的 settings-protection.key;应用也可通过 UseSettingsProtectionKey(byte[]) 直接提供稳定非空 key material,使用 factory 延迟读取,或注册自定义 ISettingsProtector 完整覆盖。精确 32 字节直接使用,其它非空长度统一经 SHA-256 派生为 32 字节 key。
AOT / Trim
- AOT 支持等级:Required。
- Trim 策略:显式 settings 注册和显式
JsonTypeInfo<TSettings>。 - 反射策略:不依赖 runtime reflection JSON 作为主路径。
Sample
../../samples/Zeek.SettingsSample/
完整文档
../../docs/modules/Zeek.Settings.md
当前限制
- 本模块不拥有、不替换
IConfigurationRoot。 - 本模块不引入第二个默认
settings.json,也不拥有文件路径入口;它直接使用 Core 的ConfigurationFilePath。 - 本模块不负责远程配置中心、数据库配置、租户配置、企业 KMS、密钥轮换或跨设备凭据同步。
- 默认字段保护不会静默回退到明文存储;它用于避免受保护字段直接出现在 settings 中,不承诺抵御同时取得 settings 与 key 文件、应用二进制或当前进程权限的攻击者。
No packages depend on Zeek.Settings.
.NET 10.0
- Zeek.Core (>= 10.0.41)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Json (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
| Version | Downloads | Last updated |
|---|---|---|
| 10.0.42 | 4 | 07/29/2026 |
| 10.0.41 | 15 | 07/22/2026 |
| 10.0.40 | 10 | 07/22/2026 |
| 10.0.39 | 19 | 07/19/2026 |
| 10.0.38 | 15 | 07/17/2026 |
| 10.0.37 | 1 | 07/16/2026 |
| 10.0.36 | 5 | 06/29/2026 |
| 10.0.35 | 1 | 06/29/2026 |
| 10.0.31 | 5 | 06/27/2026 |
| 10.0.30 | 2 | 06/27/2026 |
| 10.0.29 | 3 | 06/26/2026 |
| 10.0.28 | 2 | 06/26/2026 |
| 10.0.27 | 2 | 06/26/2026 |
| 10.0.26 | 4 | 06/25/2026 |
| 10.0.25 | 4 | 06/24/2026 |
| 10.0.24 | 7 | 06/20/2026 |
| 10.0.23 | 5 | 06/19/2026 |
| 10.0.22 | 7 | 06/18/2026 |
| 10.0.21 | 5 | 06/18/2026 |
| 10.0.20 | 9 | 06/17/2026 |
| 10.0.19 | 5 | 06/17/2026 |
| 10.0.18 | 8 | 06/16/2026 |
| 10.0.17 | 5 | 06/16/2026 |