.NET 7控制台应用如何读取appsettings.json根节点配置?
.NET 7 控制台应用读取 appsettings.json 到结构体的实现方法
1. 先确认 appsettings.json 的部署配置
你的 appsettings.json 格式已经符合要求,需要右键该文件,设置复制到输出目录为「如果较新则复制」,保证程序运行时能读取到配置文件。
2. 绑定配置到 Settings 结构体
你已经初始化了 Host 构建器,接下来有两种简洁的方式完成配置绑定:
方式一:直接使用 Get<T> 方法
var host = Host.CreateApplicationBuilder().Build(); // 直接从配置根节点绑定到结构体 var settings = host.Configuration.Get<Settings>(); // 调用示例:Console.WriteLine(settings.Key1);
方式二:使用 Bind 方法
var host = Host.CreateApplicationBuilder().Build(); var settings = new Settings(); // 将配置根节点的值绑定到已创建的结构体实例 host.Configuration.Bind(settings);
3. 可选:通过依赖注入使用配置
如果后续需要在其他服务中注入配置,可以在 Host 构建阶段完成注册:
var host = Host.CreateApplicationBuilder(); // 注册配置,将根节点配置绑定到Settings类型 host.Services.Configure<Settings>(host.Configuration); var app = host.Build(); // 从DI容器获取配置实例 var settings = app.Services.GetRequiredService<IOptions<Settings>>().Value;
注意点
因为你的 Settings 结构体使用了 required 修饰属性,必须保证 appsettings.json 中 Key1 和 Key2 都存在,否则绑定会抛出异常。如果需要允许可选配置,可以去掉 required 修饰,或者为属性设置默认值。
内容的提问来源于stack exchange,提问作者Michael Chudinov
相关产品推荐
相关产品推荐

