为什么将Ninject或其他IoC容器与存储库模式一起使用?

时间:2014-02-16 14:54:03

标签: asp.net-mvc inversion-of-control repository-pattern

我正在尝试使用TDD在MVC中构建应用程序并使用存储库模式和工作单元

在我的测试中,我创建了一个模拟工作单元(具有模拟存储库),并将其传递给我的控制器。由于我的控制器的默认构造函数将创建它自己的UoW实例(以及嵌入式存储库),我如何从使用IoC中受益?

我没有“注射”已经使用我的测试的UoW吗?

   private IUnitOfWork uow;

   public AccountController(IUnitOfWork unitOfWork)
        : this(unitOfWork)
    {
    }

    public AccountController()
        : this(new UnitOfWork())
    {

    }

1 个答案:

答案 0 :(得分:1)

正确。你应该删除额外的控制器。

Some people认为你应该在注入的服务中只有一个构造函数,我同意。它保持简单,依赖不应该是可选的。