C# 如何从.NET Core应用程序的其他层访问IOOptions(或任何设置)?
我已经在.NET Core Web API控制器中成功地尝试并使用了IOptions 例如,这对我很有用:C# 如何从.NET Core应用程序的其他层访问IOOptions(或任何设置)?,c#,.net,asp.net-core,C#,.net,Asp.net Core,我已经在.NET Core Web API控制器中成功地尝试并使用了IOptions 例如,这对我很有用: public MyController(IOptions<MySettings> options) { // I can access these _options from any method in this Controller. _options = options.Value; } public MyController(IOOptions选项) {
public MyController(IOptions<MySettings> options)
{
// I can access these _options from any method in this Controller.
_options = options.Value;
}
public MyController(IOOptions选项)
{
//我可以从此控制器中的任何方法访问这些_选项。
_选项=选项.值;
}
但是,我需要从我的应用程序的其他层访问我的IOPS
例如,也许我有这个
控制器--调用-->业务层--调用-->数据访问层
我真的不想在调用链中传递IOOptions参数。我把MySettings放在它自己的程序集中,让所有层都可以访问它
- 我是不是走错路了李>
- 正确的方法是什么李>
- 有没有一种方法可以像控制器一样将IOption自动注入构造函数?(如果是这样,我如何在需要的地方实例化每个类?)
- 从本质上来说,我并不真正关心依赖关系,而是通过一百万个“链接”层的信息流
谢谢。你不必把它传下去。在Startup.cs中注册IOPS时,所有层都可以访问IOPS。
DI容器不关心IOptions在何处使用,只要该层依赖于IOptions,并且DI容器知道使用哪种类型来实例化它。您不必将它传递给链。在Startup.cs中注册IOPS时,所有层都可以访问IOPS。
DI容器不关心IOptions在哪里使用,只要该层依赖于IOptions,并且DI容器知道使用哪种类型来实例化它。可能重复的IOptions。这为我指明了正确的方向。我是@net core的新手,不清楚它是如何在Startup.cs中处理DI的。然后,这就更清楚了:我的问题太狭隘了,可以适用于任何交叉关注点。谢谢。这为我指明了正确的方向。我是@net core的新手,不清楚它是如何在Startup.cs中处理DI的。然后,这进一步澄清了这一点:我的问题过于狭隘,可以适用于任何交叉关注点。