Ioptionmonitor跟踪应用程序设置的更改

时间:2019-05-18 17:23:18

标签: c# asp.net-core

我正在尝试实时跟踪appsettings。我使用IOptionMonitor是因为我想实时获取更改。我把它注入到我做单身的课堂上。 在启动时,我写了这个

services.Configure<AppSettings>(_config.GetSection("appSettings"));

仅此而已。有些资源说需要在方法ConfigureAppConfiguration的Programm类中设置跟随代码(委托)

config.SetBasePath(Directory.GetCurrentDirectory());
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

但是没有这个,它对我有用。我是否正确理解不再需要“ reloadOnChange”?我当前的平台.net core 2.2。

1 个答案:

答案 0 :(得分:2)

ASP.NET Core 2.2的项目模板使用WebHost.CreateDefaultBuilder,它为您提供了开箱即用的设置。以下是WebHost.CreateDefaultBuildersource)的实现相关代码:

config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);

此代码显示,reloadOnChange 被设置为true ,这就是为什么它无需任何操作即可工作的原因。