2つのプロジェクト(.NET Core Web APIと.NET Core WindowsService)では、設定にappsettings.jsonを使用しています。私はIOptions
の依存性注入を介して注入としてreloadOnChangeが真とそれを使用に設定されている両方でMicrosoft.Extensions.ConfigurationのreloadOnChangeがappsettings.jsonのためにどのように動作するか
var configuration = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
。 Web API内でコントローラクラスに、サービス内で設定を使用するクラスに移動します。
残念ながら、appsettings.jsonが変更されても値が変更されないことがあります。
ウェブAPIで私はconfigから文字列値を返すコントローラを作成しました。これは起動時と同じままです。
だから私の質問:それは(少なくともウェブAPIで)箱から出して動作する必要がある場合
- 誰もが知っていますか?
- 私はそれを動作させる必要がありますか?
どのようにオプションを登録していますか? 'services.Configure(Confiugration.GetSection(...))'を使用していますか?あなたは '.Bind()'を使っていますか? –
Tseng
どちらの場合もservices.Configure(Confiugration.GetSection(。..)) –
monty
通常は、上記のオーバーロードを呼び出すと登録された変更トークンを使用して動作します(https://github.com/aspnet/Options /blob/rel/1.1.0/src/Microsoft.Extensions.Options.ConfigurationExtensions/OptionsConfigurationServiceCollectionExtensions.cs#L35-L36)およびhttps://github.com/aspnet/Options/blob/rel/1.1.0/src/ Microsoft.Extensions.Options.ConfigurationExtensions/ConfigureFromConfigurationOptions.csトークンが起動されたときに再バインドをトリガーします。 – Tseng