Microsoft.Extensions.Configuration 的 reloadOnChange 如何用于 appsettings.json

问题描述 投票:0回答:1

在两个项目(.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 中)?
  2. 我必须做什么才能有效?
json asp.net-core .net-core appsettings asp.net-core-webapi
1个回答
11
投票

假设您正在使用 .net-core 1.1(因为

reloadOnChange
仅在 ASP.NET Core 1.1 及更高版本中受支持),它实际上是您想要的
IOptionsSnapshot
(参见 .net-core 1.1)。 ASP.NET Core 中的配置 - IOptionsSnapshot)而不仅仅是
IOptions

© www.soinside.com 2019 - 2024. All rights reserved.