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);
}
}