gpt4 book ai didi

c# - 无法在服务中注入(inject) IOptions

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:06 25 4
gpt4 key购买 nike

我正在尝试在我创建的服务中注入(inject) IOptions,但它始终为 null:

public class Startup
{
private IConfiguration configuration;
public Startup(IConfiguration config)
{
this.configuration = config; //gets injected from Main method , not null !
}
public void ConfigureServices(IServiceCollection services)
{

Config config = configuration.GetSection("Config").Get<Config>();
services.Configure<Config>(configuration);
services.AddTransient<StatusService>();
services.AddCors();
services.AddOptions();

}
}

服务

internal class StatusService
{
private Config config;
public StatusService(IOptions<Config>_config)
{
this.config=_config.Value; // _config has default fields
}
}

P.S Config 只是一个 POCO,它使用 UseConfiguration 扩展在 Program.Main 方法中填充。配置被解析为 OK 所以没有那里有问题。我在 Startup 构造函数中成功注入(inject)了配置。

最佳答案

你的代码应该是这样的:

services.Configure<Config>(configuration.GetSection("Config"));

关于c# - 无法在服务中注入(inject) IOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53897184/

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