Dependency injection .net核心方法依赖项注入

Dependency injection .net核心方法依赖项注入,dependency-injection,.net-core,Dependency Injection,.net Core,是否可以将DI用于非控制器方法 例如,我有一个调用另一个类的控制器 控制器 public constructor(IValidator validatorObject, IClass class) { _validatorObject = validatorObject; _class = class; } public IActionResult DoSomething() { _class.DoSomething("myName"); } C类 public void DoS

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

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

控制器

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

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

public void DoSomething([FromService] IValidator, string name){}
但是编译器失败了,因为我没有传入第一个参数

谢谢
Alex

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


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

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


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

您应该将
IValidator
对象注入
IClass
中。您应该将
IValidator
对象注入
IClass
中。谢谢。这是我的想法,但我在文档中看不到它。出于好奇,你在上面的链接中到底看到了什么?我没有看到任何迹象表明它只在控制器中起作用。就在第一句中,尽管有点快。“指定应使用请求服务绑定操作参数。”操作与控制器操作相同。第二个提示是,它继承自IBindingSourceMetadata,并在模型绑定期间执行DI查找。谢谢。这是我的想法,但我在文档中看不到它。出于好奇,你在上面的链接中到底看到了什么?我没有看到任何迹象表明它只在控制器中起作用。就在第一句中,尽管有点快。“指定应使用请求服务绑定操作参数。”操作与控制器操作相同。第二个提示是,它继承自IBindingSourceMetadata,并在模型绑定期间执行DI查找。