我正在使用依赖注入并且遇到了一些我无法弄清楚的事情。我有一个需要通用记录器的基类:
public class BaseClass
{
public BaseClass(ILogger<BaseClass> logger)
{
// code here
}
}
然后我有一个类继承,也需要通用记录器:
public class SubClass : BaseClass
{
public SubClass(ILogger<SubClass> logger)
{
// code here
}
}
问题是这不能与消息一起编译;BaseClass 不包含采用 0 个参数的构造函数。
如果我能做到这一点,这将很容易解决:
public SubClass(ILogger<SubClass> logger) : base(logger)
问题是这也是不合法的,因为ILogger<SubClass>
它不是一个实例ILogger<BaseClass>
(它不能用The best overloaded match for ... has some invalid arguments编译)。
一种可能的解决方案:
我想我不必使用构造函数注入,而是使用DependencyResolver
.
问题:以前肯定有人遇到过这个问题吗?有可能与构造函数注入有关吗?如果是这样,我该怎么办?
注意:在我正在使用的当前项目中StructureMap
(对于 MVC4),但我认为这里的工具有点无关紧要。