I am trying to inject a IOptions
inside a service that I created and it is always 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();
}
}
Service
internal class StatusService
{
private Config config;
public StatusService(IOptions<Config>_config)
{
this.config=_config.Value; // _config has default fields
}
}
P.S Config is just a POCO that gets populated in the Program.Main
method using UseConfiguration
extension.The configuration is parsed OK so no problems there.I get the configuration injected successfully in the Startup
constructor.
your code should be like this: