在阅读了这篇关于从appsettings.json文件中读取应用程序设置和配置的好文章后,我有点困惑appsettings.json会被读取多少次?
这是启动类,当应用程序开始工作时,第一次阅读它(我想,如果我错了,请纠正我(。
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上物理文件的读取计数。
这取决于情况。在填充IConfiguration
时,JSON文件将在启动时读取一次。
但是,如果配置设置为在更改时刷新,那么如果在运行时对文件进行了更改,则会重新读取该配置。
每次注入IConfiguration
时,JSON文件都不会被重新读取。
ASP。NET核心
话虽如此。理想情况下,你不应该到处注射IConfiguration
。它有时被视为一种代码气味。期权模式通常是建议的方法
ASP中的参考选项模式。NET核心
文档中的这个特定位置应该很有趣,因为它关注的是在设置配置时框架自动调用AddJsonFile
的次数
JSON配置提供程序