首页 > 解决方案 > ASP.NET Core 在工作时会读取多少次 appsettings.json 文件?

问题描述

在阅读了这篇关于从 appsettings.json 文件中读取应用程序设置和配置的好文章后,我对 appsettings.json 将被读取多少次感到有点困惑?

这是 Startup 类,当应用程序开始工作时第一次阅读它(我想,如果我错了,请纠正我)。

public class Startup
{  
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }
 ...

在控制器上:

public class HomeController : Controller
{
   private readonly IConfiguration _config;
   public HomeController(IConfiguration config)
    {
        _config = config;
    }
  ...

问题是 appsettings.json 会在 Start 类上被读取一次,还是每次我们使用 HomeController 时都会被读取?

因为它是一个文件,我正在询问 HDD 上物理文件的读取计数。

标签: asp.net-mvcasp.net-coreweb-config

解决方案


这取决于。JSON 文件将在启动时读取一次IConfiguration

但是,如果配置设置为在更改时刷新,那么如果在运行时对文件进行更改,它将被重新读取。

每次IConfiguration注入,JSON文件都不会被重读。

ASP.NET Core 中的参考配置

那就是说。理想情况下,您不应该到处注射IConfiguration。它有时被视为一种代码气味。选项模式通常是建议的方法

ASP.NET Core 中的参考选项模式

文档中的这个特定位置应该很有趣,因为它侧重于AddJsonFile设置配置时框架自动调用的次数

JSON 配置提供程序


推荐阅读