我需要将通用存储库(IRepository)注入到我的类的构造函数中,但是我不知道如何使用structuremap 2.6中的新DSL来完成它,有谁知道怎么做?
答案 0 :(得分:4)
只需在配置中使用一行代码即可完成此操作。假设你有这个:
实体: - 客户 - 订单
并拥有这样的通用存储库模型:
并提供类似的应用服务:
public AppService(IRepository<Customer> custRepo, IRepository<Order> orderRepo)
你会有这样的事情。请注意有关使用扫描程序连接自定义存储库的信息。
public class SmRegistry : Registry
{
public SmRegistry()
{
For(typeof (IRepository<>))
.Use(typeof (Repository<>));
//using this will find any custom repos, like CustomerRepository : Repository<Customer>
//Scan(scanner =>
// {
// scanner.TheCallingAssembly();
// scanner.ConnectImplementationsToTypesClosing(typeof (IRepository<>));
// });
}
}
假设您的存储库是在应用程序的其他程序集中定义的,您可以使用注册表将它们连接在一起。看看这篇文章:
http://blog.coreycoogan.com/2010/05/24/using-structuremap-to-configure-applications-and-components/