我正在尝试实时跟踪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。
答案 0 :(得分:2)
ASP.NET Core 2.2的项目模板使用WebHost.CreateDefaultBuilder
,它为您提供了开箱即用的设置。以下是WebHost.CreateDefaultBuilder
(source)的实现相关代码:
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
此代码显示,reloadOnChange
被设置为true
,这就是为什么它无需任何操作即可工作的原因。