我正在尝试注入一个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();
}
}
Run Code Online (Sandbox Code Playgroud)
服务
internal class StatusService
{
private Config config;
public StatusService(IOptions<Config>_config)
{
this.config=_config.Value; // _config has default fields
}
}
Run Code Online (Sandbox Code Playgroud)
PS Config只是一个POCO,它在Program.Main使用UseConfiguration扩展的方法中填充.配置被解析好,所以没有问题Startup.我在构造函数中成功注入了配置.