gpt4 book ai didi

asp.net-mvc - 在 Using block 中注入(inject) UnitOfWork

转载 作者:行者123 更新时间:2023-12-04 05:26:26 25 4
gpt4 key购买 nike

我在 UnitOfWork/Repository/MVC 应用程序上工作。现在这一切都很好,我想将 UnitOfWork 与 Controller 分离。一种方法是在 Controller 的构造函数中使用 Ninject(或其他)注入(inject)依赖项。但是,这意味着 UnitOfWork 将与 Controller 同时实例化。

我想使用我的 UnitOfWork 的方式是使用这样的 block :

using(var unitOfWork = new IUnitOfWork)
{
return unitOfWork.GetRepository<IEmployeesRepository>().GetAllEmployees();
}

显然你不能实例化一个接口(interface),你有一个用依赖注入(inject)器注入(inject)的实现实例,但是我怎样才能在 using 子句中注入(inject)它呢?

我看到了属性注入(inject)和方法注入(inject),但我不确定如何使用它们来实现我的目标。

最佳答案

使用您在容器中注册的工厂:

public class UserController : Controller
{
IUnitOfWorkFactory _factory;

public UserController(IUnitOfWorkFactory factory)
{
_factory = factory;
}

public ActionResult DoSomething()
{
using(var unitOfWork = _factory.Create())
{
return unitOfWork.GetRepository<IEmployeesRepository>().GetAllEmployees();
}
}
}

恕我直言,最好抽象出 UoW 处理: http://blog.gauffin.org/2012/06/how-to-handle-transactions-in-asp-net-mvc3/

关于asp.net-mvc - 在 Using block 中注入(inject) UnitOfWork,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com