2013-10-16 80 views
0

Supose我的下一個clases:StructureMap - 再利用的實例在構造

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

取決於範圍。例如,您可以使用

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

還有其他的範圍選項。 More info here

+0

Thanks @mxmissile。我在Windows應用程序中使用它,並且想爲每個表單創建一個AppView實例。我認爲範圍本身就是白色,但我不知道如何限制範圍。 –