gpt4 book ai didi

asp.net-core - ServiceProvider 无法解析配置方法中的选项

转载 作者:行者123 更新时间:2023-12-03 23:30:53 27 4
gpt4 key购买 nike

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

}

最佳答案

那是因为使用 services.Configure<T>(...) 您注册的不是确切的 T 而是 IOptions<T>
所以你有两种方法。要么注册确切的 T 像

services.AddScoped(provider => provider.GetRequiredService<IOptions<T>>().Value);

或通过 IOptions 获取 T:
var options = services.GetService<IOptions<HstsOptions>>().Value;

关于asp.net-core - ServiceProvider 无法解析配置方法中的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866236/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com