首页 文章

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

提问于
浏览
0

我已成功尝试并使用.NET Core Web API Controller中的IOptions .

例如,这对我有用:

public MyController(IOptions<MySettings> options)
{
    // I can access these _options from any method in this Controller.
    _options = options.Value;
}

但是,我需要从我的应用程序中的其他层访问我的IOptions .

比如,也许我有这个......

控制器 - 调用 - >业务层 - 调用 - >数据访问层

我真的不想在调用链中传递IOptions参数 . 我将MySettings放在自己的程序集中,让所有层都可以访问它 .

  • 我接近这个错吗?

  • 这样做的正确方法是什么?

  • 有没有办法让IOptions自动注入到构造函数中,如Controller? (如果是这样,我如何实例化我需要的每个类?)

编辑:

  • 我并不是真正关心依赖性本身,而是通过一百万个层次的信息流 .

控制器(来自配置的连接字符串) - 调用 - >业务层(连接字符串) - 调用 - >数据访问层(连接字符串)

我只是用Connection String作为例子 .

谢谢 .

1 回答

  • 3

    你不必将它传递给链条 . 在Startup.cs中注册IOptions时,它可以访问所有层 . DI容器不关心IOptions的使用位置,只要该层依赖于IOptions并且DI容器知道使用哪种类型来实例化它 .

相关问题