我正在尝试新建一个对象,如果该对象的构造函数包含.Net Core注入的依赖项(Serilog.ILogger),我会收到一个编译错误“没有给出与所需形式参数对应的参数......“。
我可以在我的MVC控制器构造函数中添加ILogger注入,并获得ILogger的实例,因此我知道DI正在工作。
但如果我设置了一个类:
using Serilog;
public class TestObject
{
public TestObject(ILogger logger) { }
}
并称之为:
TestObject test = new TestObject();
我收到错误消息:
没有给出的参数对应于'TestObject.TestObject(ILogger)'
所需的形式参数'logger'
(但是,注入可以在我的CommandHandlers中工作,例如,如果MediatR中介调用处理程序类。)
不是DI的重点,所以我不必传递这样的依赖项吗?:
var query = new GetAllUsers(logger);
如果我想在命令和查询中使用日志记录,我将不得不为我的所有命令和查询创建工厂?
我错过了一些基本的东西吗?
提前谢谢你。由于关键词“新”,“依赖注入”等太常见,因此很难通过Google获得答案。