Microsoft.Extensions.Configuration的reloadOnChange如何为appsettings.json工作

noj0wjuj  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(97)

在两个项目(一个是.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.我需要做什么才能成功吗?

j2qf4p5b

j2qf4p5b1#

假设您使用的是.net-core 1.1(因为reloadOnChange仅在ASP.NET Core 1.1及更高版本中受支持),实际上您需要的是IOptionsSnapshot(参见。在ASP.NET核心配置- IOptionsSnapshot),而不仅仅是IOptions

相关问题