2017-03-17 6 views
1

私はasp.netコアアプリケーションを持っています。私はOptionsをappsettings.jsonファイルに保存しています。私はOptionsをサービスに登録して、それをConfigureメソッドで解決しようとしています。ServiceProviderは設定メソッドのオプションを解決できません

ただし、サービスプロバイダはConfigureメソッドでオプションを解決できません。あなたがservices.Configureを使用するときに、あなたが本当に事のIOptionsを登録していることを

public void Configure(
    IApplicationBuilder app, 
    IHostingEnvironment env, 
    ILoggerFactory loggerFactory, 
    IApplicationLifetime appLifetime, 
    IOptions<HstsOptions> hstsOptions) 
{ 
     app.UseHsts(hstsOptions.Value); 
} 

注:設定のメソッドシグネチャを変更し、このような以前の方法に登録何かを注入することができ

public class Startup 
{ 
    public void ConfigureServices(IServiceCollection services) 
    { 
     services.Configure<HstsOptions>(Configuration.GetSection("HstsOptions")); 
    } 

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime,IServiceProvider services) 
    { 

      var options = services.GetService<HstsOptions>(); 
      // service provider cannot resolve options here, it returns null 
      app.UseHsts(options); 
    } 

} 

答えて

1

あなたは登録していて、それの.Valueプロパティを使うものを得るには

関連する問題