'What is the use case of IOptions versus IConfiguration (other than IOptions allows mapping to object)?
I can inject the IConfiguration config into constructor and then access the app settings from json file via config["settignName"];
Example code inside service class:
public MyService(IConfiguration config)
{
_key = config["MyKey"];
}
I came across IOptions which allows to map app settings from json file to a .net object.
Example:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<MySettings>(Configuration.GetSection("MySettings"));
...
}
And then inject the IOption into the constructor.
What is the use case of IOptions versus IConfiguration (other than IOptions allows mapping to object)? I don't see IConfiguration being used in online examples so is that OK to be used or should I switch to IOption?
Solution 1:[1]
As explained in documentation sometimes you prefer to split your settings by groups or scenarios, this is really easy with IOptions.
services.Configure<AppSettings1>(configuration.GetSection("AppSettings1"));
services.Configure<AppSettings2>(configuration.GetSection("AppSettings2"));
And then you can specify in your class constructor which one you need. You can have something similar with IConfiguration but you need write more code.
Other reason, I prefer access to the configs values using properties rather than using indexes. If I need to update a config key it will more painful using indexes.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Pedro Perez |
