相关疑难解决方法(0)

使用Controller类以外的类的依赖注入

此时我正在轻松地将内容注入到我的控制器中,在某些情况下构建我自己的ResolverServices类.生活很美好.

我无法弄清楚如何做的是让框架自动注入到非控制器类中.框架自动注入我的控制器的工作是什么IOptions,这实际上是我的项目的配置:

public class MessageCenterController : Controller
{
    private readonly MyOptions _options;

    public MessageCenterController(IOptions<MyOptions> options)
    {
        _options = options.Value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为我可以在我自己的类中发生同样的情况,我认为当我模仿控制器时我会接近,就像这样:

public class MyHelper
{
    private readonly ProfileOptions _options;

    public MyHelper(IOptions<ProfileOptions> options)
    {
        _options = options.Value;
    }

    public bool CheckIt()
    {
        return _options.SomeBoolValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想我失败的地方就是我这样称呼它:

public void DoSomething()
{
    var helper = new MyHelper(??????);

    if (helper.CheckIt())
    {
        // Do Something
    }
}
Run Code Online (Sandbox Code Playgroud)

我跟踪它的问题实际上是关于DI的所有内容都是在控制器级别讨论它.我试图找到它在Controller对象源代码中发生的位置,但它在那里变得有点疯狂.

我知道我可以手动创建一个IOptions实例并将其传递给MyHelper构造函数,但似乎我应该能够让框架做到这一点,因为它适用于Controllers.

非常感谢您的帮助.

c# asp.net-core-mvc .net-core asp.net-core

56
推荐指数
3
解决办法
3万
查看次数

标签 统计

.net-core ×1

asp.net-core ×1

asp.net-core-mvc ×1

c# ×1