使用structuremap 2.6注入泛型参数

时间:2010-06-01 21:19:10

标签: dependency-injection structuremap

我需要将通用存储库(IRepository)注入到我的类的构造函数中,但是我不知道如何使用structuremap 2.6中的新DSL来完成它,有谁知道怎么做?

1 个答案:

答案 0 :(得分:4)

只需在配置中使用一行代码即可完成此操作。假设你有这个:

实体: - 客户 - 订单

并拥有这样的通用存储库模型:

  • 存储库:IRepository

并提供类似的应用服务:

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/