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>();
还有其他范围选项。更多信息在这里。