2017-11-27 4 views

答えて

2

強いタイプの設定を直接注入する代わりに、IOptionsSnapshot<T>を注入する必要があります。Tは設定クラスです。これにより、設定がリロードされたときに値が更新されます。あなたが代わりに直接IOptionsSnapshotを使用するには、依存性注入を設定することができ

public class MyController : Controller 
{ 
    private readonly IOptionsSnapshot<MySettings> _settings; 

    public MyController(IOptionsSnapshot<MySettings> settings) 
    { 
     _settings = settings; 
    } 

    ... 
} 

:たとえば

services.Configure<MySettings>(Configuration.GetSection("MySettings")); 
services.AddScoped(cfg => cfg.GetService<IOptionsSnapshot<MySettings>>().Value); 

次に、あなただけ以前のように自分のコントローラにMySettingsを注入し続けることができます。

注:IOptionsSnapshotは、ASP.NET Core 1.1以降で利用できます。以前のバージョンで設定をリロードする方法はありません。

関連する問題