.NET6 从JSON获取配置

环境准备 nuget包 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Binder Microsoft.Extensions.Configuration.Json (当需要从Json文件添加记录时,安装此nuget包) Microsoft.Extensions.Configuration.EnvironmentVariables (当需要从环境变量添加记录时,安装此nuget包) C#开发环境 visual studio 2019 + visual Code 示例代码 // See https://aka.ms/new-console-template for more information using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; Console.WriteLine("Hello, World!"); ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); IConfiguration c = configurationBuilder.AddJsonFile("appsettings.json").AddEnvironmentVariables().Build(); var k = c.GetRequiredSection("Settings").Get<Settings>().KeyOne; var n = 1; public class NestedSettings { public string Message { get; set; } = null!; } public class Settings { public int KeyOne { get; set; } public bool KeyTwo { get; set; } public NestedSettings KeyThree { get; set; } = null!; } JSON 文件 (appsettings.json.ps:配置文件属性建议按下面属性设置) { "Settings": { "KeyOne": 1, "KeyTwo": true, "KeyThree": { "Message": "Oh, that's nice..." } } } 常见问题 如何自定义配置项目的Key 使用 [ConfigurationKeyName]属性进行设置,如下面的配置: public class ApiConfig { [ConfigurationKeyName("endpoint")] public string Endpoint { get; set; } } 配置热重载 配置热重载可以使用ChangeToken.OnChange来实现,参考微软官方文档 下面是一个例子: ...

2022-09-06 · 1 分钟 · czyt