我已成功尝试并使用了.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。
例如,也许我有这个......
Controller --calls - &gt;业务层 - 呼叫 - &gt;数据访问层
我真的不想在调用链中传递IOptions参数。我将MySettings放在自己的程序集中,让所有图层都可以访问它。
编辑:
控制器(来自配置的连接字符串) - 调用 - &gt;业务层(连接字符串) - 调用 - &gt;数据访问层(连接字符串)
我刚用连接字符串作为例子。
感谢。
答案 0 :(得分:2)
你不必将它传递给链条。在Startup.cs中注册IOptions时,它可以访问所有层。 只要该层依赖于IOptions并且DI容器知道使用哪种类型来实例化它,DI容器就不关心IOptions的使用位置。