LP1*_*P13 4 coreclr asp.net-core
我有asp.net 核心应用程序。我已经Options存储在 appsettings.json 文件中。我注册了Options服务,然后尝试在 Configure 方法中解决它。
但是服务提供商无法解析配置方法中的选项。
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);
}
}
Run Code Online (Sandbox Code Playgroud)
那是因为services.Configure<T>(...)您注册的不是确切的T而是IOptions<T>. 所以你有两种方法。要么注册确切的 T 像
services.AddScoped(provider => provider.GetRequiredService<IOptions<T>>().Value);
Run Code Online (Sandbox Code Playgroud)
或T通过 IOptions:
var options = services.GetService<IOptions<HstsOptions>>().Value;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4601 次 |
| 最近记录: |