C# 配置文件读取方法 C#如何读取appsettings.json-C#.Net教程

appsettings.json 默认不会自动加载,需显式构建 IConfiguration 实例并注册;控制台或类库项目必须手动调用 ConfigurationBuilder.AddJsonFile;读取嵌套对象须用 GetSection().Get(),而非 GetValue();环境配置文件需手动指定且大小写敏感。

appsettings.json 默认不被 C# 项目自动加载

新建的 .NET Core 或 .NET 5+ 项目默认会包含 appsettings.json,但它不会“自动生效”——你得显式构建 IConfiguration 实例并注册它。控制台、类库、甚至某些 ASP.NET Core 模块(如中间件外的静态方法)里直接用 Configuration["Key"] 会返回 null,因为没初始化配置源。

常见错误现象:Configuration.GetSection("Logging").GetChildren() 返回空集合;Configuration.GetValue("Timeout") 始终是 0;读取不到自定义节内容。

  • ASP.NET Core Web 项目:通常在 Program.cs 中通过 WebApplication.CreateBuilder(args) 自动完成配置加载,无需手动干预
  • 控制台或类库项目:必须自己调用 ConfigurationBuilder 并添加 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
  • reloadOnChange: true 仅在文件系统支持热重载的环境(如开发时的 Kestrel + dotnet watch)下有效,发布后不生效

读取嵌套对象需用 Get() 而非 GetValue()

GetValue() 只适用于扁平键(如 "ConnectionStrings:Default"),遇到对象结构(如 "Features:EnableCache" 或整个 "Features" 节)必须用 GetSection().Get(),否则返回默认值或抛异常。

例如,有如下 JSON:

{
  "Features": {
    "EnableCache": true,
    "MaxRetries": 3
  }
}

正确做法:

  • 读布尔值:config.GetSection("Features").GetValue("EnableCache")
  • 读整个对象:config.GetSection("Features").Get(),其中 FeaturesOptions 是含 public bool EnableCache { get; set; } 和 public int MaxRetries { get; set; } 的类
  • 错误写法:config.GetValue("Features") —— 这会失败,因为 GetValue 不支持反序列化对象

环境配置文件(appsettings.Development.json)需手动指定环境名

appsettings.{Environment}.json 不会自动加载,除非你在 ConfigurationBuilder 中明确调用 .AddJsonFile($"appsettings.{env}.json", optional: true),且 env 值必须与当前运行时环境匹配。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » C# 配置文件读取方法 C#如何读取appsettings.json-C#.Net教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4001889+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4001889+
  • 本周更新: 0+
  • 最后更新: 2026-03-16