web-dev-qa-db-ja.com

Microsoft.Extensions.ConfigurationのreloadOnChangeがappsettings.jsonに対してどのように機能するか

2つのプロジェクト(.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. それが機能するために私がしなければならないことはありますか?
16
monty

.net-core 1.1を使用している場合(reloadOnChangeはASP.NET Core 1.1以降でのみサポートされているため)、実際に必要なのはIOptionsSnapshotです(cf. ASPでの構成。 NET Core-IOptionsではなく、IOptionsSnapshot )。

10
Boggin