【发布时间】:2011-11-04 04:10:03
【问题描述】:
我有一个抽象的基础控制器,它有一个构造函数,我希望在构建控制器时由 autofac 填充。
public abstract class BaseController : Controller
{
protected ILogger { get; private set; }
protected BaseController()
{
}
protected BaseController(ILogger logger)
{
Logger = logger;
}
}
当我从中派生控制器时,这似乎不起作用。
只有当我从控制器显式调用构造函数时,我才能让它工作。这是正确的做法吗?
public class PublicController : BaseController
{
public PublicController()
{
}
public PublicController(ILogger logger) : base(logger)
{
}
}
此外,使用 MVC 集成程序集,似乎没有办法共享容器以供其他类进行自己的解析。我在某处读到不鼓励这样做,为什么不呢?这只是为了解耦任何单个 ioc 框架的依赖关系吗?构造函数注入是唯一在层次结构中填充依赖项的方式吗?
【问题讨论】:
标签: constructor autofac code-injection abstract