.net核心方法依赖项注入

时间:2019-03-04 15:02:46

标签: dependency-injection .net-core

是否可以将DI用于非控制器方法?

例如,我有一个调用另一个类的控制器

controller.cs

public constructor(IValidator validatorObject, IClass class)
{
  _validatorObject = validatorObject;
  _class = class;
}

public IActionResult DoSomething()
{
  _class.DoSomething("myName");
}

class.cs

public void DoSomething([FromService] IValidator, string name){}

但是编译器失败,因为我没有传入第一个参数。

谢谢 亚历克斯

1 个答案:

答案 0 :(得分:1)

不。 FromService属性只能应用于控制器的操作方法。

https://docs.microsoft.com/sv-se/dotnet/api/microsoft.aspnetcore.mvc.fromservicesattribute?view=aspnetcore-2.2

但是,您可以将IValidator注入“ class.cs”的构造函数中,将其存储为私有成员,然后在DoSomething方法中使用它。