//IOptions will be read at application start only and wiil be registered as a singleton //IOptionsSnapshot will be read everytime a new instance is injected and registered as scoped public Worker(ILogger <Worker> logger, IOptions <JsonGroup> jsonOptions, IOptions <EnvGroup> envOptions, IOptions <CmdGroup> cmdOptions) { this.logger = logger; jsonSettings = jsonOptions.Value; envSettings = envOptions.Value; cmdSettings = cmdOptions.Value; }
public Worker(ILogger <Worker> logger, IOptionsMonitor <JsonGroup> jsonOptions, IOptions <EnvGroup> envOptions, IOptions <CmdGroup> cmdOptions) { this.logger = logger; jsonSettings = jsonOptions.CurrentValue; jsonOptions.OnChange(newValue => jsonSettings = newValue); envSettings = envOptions.Value; cmdSettings = cmdOptions.Value; }