在两个项目(一个是.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上,我创建了一个控制器,只从配置中返回一个字符串值,这与启动时相同。
所以我的问题是
1.有人知道这是否应该开箱即用(至少在web API中)?
1.我需要做什么才能成功吗?
1条答案
按热度按时间j2qf4p5b1#
假设您使用的是.net-core 1.1(因为
reloadOnChange
仅在ASP.NET Core 1.1及更高版本中受支持),实际上您需要的是IOptionsSnapshot
(参见。在ASP.NET核心配置- IOptionsSnapshot),而不仅仅是IOptions
。