结构图 - 在构造函数中重用实例



Supose 我有下一个分支:

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上设置它?

更新:我正在寻找这样的东西,但在容器配置中或通过注册表完全定义。

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

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

还有其他范围选项。更多信息在这里。

最新更新