Alo*_*ois 5 c# dependency-injection asp.net-core
我在配置文件中有一个自定义选项块(MyOptions),appsettings.json如下所示:
{
"ConnectionStrings": {
"test": "..."
},
"MyOptions": {
"Prop1": "Value1",
"Prop2": "Value2"
}
}
Run Code Online (Sandbox Code Playgroud)
我的 POCO 看起来像这样:
public class MyOptions
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在 中Startup,我注册它,如下所示:
public void ConfigureServices(IServiceCollection services)
{
var configSection = Configuration.GetSection("MyOptions");
services.Configure<MyOptions>(configSection);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器通过使用适配器“IOptions”来请求它:
public IndexController(IOptions<MyOptions> options)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
这是我的问题:为什么我必须使用适配器IOptions?官方文档说这IOptions是一个单例。IOptions使用像这样注册Options为服务有什么好处吗?
public IndexController(IOptions<MyOptions> options)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)