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

ASP.NET Core 默认通过 Configuration API 自动加载 appsettings.json,注入 IConfiguration 即可读取;推荐绑定强类型配置类并使用 IOptions,注意键路径用冒号、文件需设为“始终复制”。

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() 获取值
  • 例如:configuration["ConnectionStrings:DefaultConnection"] 对应 JSON 中的 "ConnectionStrings": { "DefaultConnection": "..." }

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

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

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

注意事项和常见问题

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

如果读不到值,请检查:
– JSON 文件的“复制到输出目录”属性是否设为“始终复制”
– 键路径拼写是否正确(冒号 : 表示层级,不是点)
– 是否误用了 Get() 却没调用 GetSection() 指定根节点

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