Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从.NET Core应用程序的其他层访问IOOptions(或任何设置)?_C#_.net_Asp.net Core - Fatal编程技术网

C# 如何从.NET Core应用程序的其他层访问IOOptions(或任何设置)?

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选项) {

我已经在.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选项)
{
//我可以从此控制器中的任何方法访问这些_选项。
_选项=选项.值;
}
但是,我需要从我的应用程序的其他层访问我的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的。然后,这进一步澄清了这一点:我的问题过于狭隘,可以适用于任何交叉关注点。