ASP.NET Core怎么读取配置文件 appsettings.json读取方法

来源:这里教程网 时间:2026-02-21 17:39:17 作者:

ASP.NET Core 读取

appsettings.json
主要靠内置的 配置系统(Configuration API),默认已自动加载该文件,你只需注入
IConfiguration
就能直接使用。

自动加载机制

新建的 ASP.NET Core 项目在

Program.cs
中默认已通过
Host.CreateDefaultBuilder()
WebApplicationBuilder
加载了
appsettings.json
和环境对应文件(如
appsettings.Production.json
),无需手动添加。

这意味着:只要文件存在且格式正确,配置就已就绪。

在服务中读取配置(推荐方式)

最安全、可测试、符合依赖注入原则的做法是——通过构造函数注入

IConfiguration

在控制器、服务类或中间件中声明构造函数参数
IConfiguration configuration
configuration["Section:Key"]
configuration.GetSection("Section").Get<myoptions>()</myoptions>
获取值
例如:
configuration["ConnectionStrings:DefaultConnection"]
对应 JSON 中的
"ConnectionStrings": { "DefaultConnection": "..." }

绑定强类型配置类(更清晰、可验证)

把配置映射到 C# 类,避免硬编码字符串路径:

定义一个类(如
AppSettings.cs
),属性名与 JSON 层级一致
Program.cs
中调用
builder.Services.Configure<appsettings>(builder.Configuration.GetSection("AppSettings"))</appsettings>
在需要的地方注入
IOptions<appsettings></appsettings>
IOptionsSnapshot<appsettings></appsettings>
(后者支持热重载)

注意事项和常见问题

配置键不区分大小写,但建议保持 JSON 原始大小写风格;数组和嵌套对象支持良好;环境变量、命令行参数会覆盖 JSON 值(按加载顺序后覆盖前)。

如果读不到值,请检查:
– JSON 文件的“复制到输出目录”属性是否设为“始终复制”
– 键路径拼写是否正确(冒号

:
表示层级,不是点)
– 是否误用了
Get<t>()</t>
却没调用
GetSection()
指定根节点

基本上就这些。不用手动解析 JSON,也不用写文件读取逻辑——框架已经帮你做好了。

相关推荐