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的内容,但在容器配置或注册表中完全定义。
答案 0 :(得分:0)
取决于范围。例如,您可以使用
x.For<IUnitOfWork>()
.HybridHttpOrThreadLocalScoped()
.Use<DbUnitOfWork>();
还有其他范围选项。 More info here