使用.net Core Dependency Injection创建新对象失败,缺少参数错误

时间:2017-12-12 04:38:57

标签: dependency-injection .net-core

我正在尝试新建一个对象,如果该对象的构造函数包含.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获得答案。

0 个答案:

没有答案