StructureMap - 在构造函数中重用实例

时间:2013-10-16 15:10:48

标签: c# structuremap

Supose我有下一个clases:

public class DBUnitOfWork : IUnitOfWork { ... }

public class CustomerRepository : ICustomerRepository
{
    public CustomerRepository(DBUnitOfWork unitOfWork) { ... }
}

public class OrderRepository : IOrderRepository
{
    public OrderRepository(DBUnitOfWork unitOfWork) { ... }
}

public class AppService : IAppService
{
    public AppService(IUnitOfWork unitOfWork, ICustomerRepository customers, IOrderRepository orders) { ... }
}

public class AppView
{
    public AppView(IAppService appService) { ... }
}

我想通过StructureMap创建一个AppView实例,每次创建时都会注入一个新的AppService对象,并且AppService本身具有相同的DBUnitOfWork实例,以及两个存储库。如何在StructureMap上设置它?

更新:我正在寻找类似this的内容,但在容器配置或注册表中完全定义。

1 个答案:

答案 0 :(得分:0)

取决于范围。例如,您可以使用

x.For<IUnitOfWork>()
  .HybridHttpOrThreadLocalScoped()
  .Use<DbUnitOfWork>();

还有其他范围选项。 More info here