Dependency injection .net核心方法依赖项注入
是否可以将DI用于非控制器方法 例如,我有一个调用另一个类的控制器 控制器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
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查找。