在两个项目(.NET Core Web API和.NET Core WindowsService)中,我使用appsettings.json进行配置。
var configuration = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
在两者中,我将reloadOnChange设置为true,并通过依赖注入将其用作注入IOptions
。在web api中进入控制器类,在服务内进入使用设置的类。
不幸的是,我发现当appsettings.json发生变化时,值不会改变。
在web api上我创建了一个控制器,只是从配置中返回一个字符串值,这与启动时保持一致。
所以我的问题:
答案 0 :(得分:7)
假设您使用的是.net-core 1.1(因为reloadOnChange
仅在ASP.NET Core 1.1及更高版本中受支持),实际上您需要IOptionsSnapshot
(参见
Configuration in ASP.NET Core - IOptionsSnapshot)而不仅仅是IOptions
。