2

我有同一个接口的多个实现,它们都具有相同的构造函数参数(strConn)。是否可以使用 1 个 container.Register 调用注册所有实现?

这是我所拥有的:

container.Register(
            Classes.FromAssemblyContaining<IUserMenuDao>()
                .BasedOn<IDataAccess>().WithService.FromInterface()
            );

这些实现都具有相同的构造函数参数;strConn。注册一个将是:

container.Register(Component.For<IUserMenuDao>()
                               .DependsOn(new {strConn = ConfigurationManager.ConnectionStrings["ABC123"].ConnectionString})
                               .ImplementedBy<UserMenuDaoSqlServerImpl>());

有没有办法按照类似于代码示例 #1 的约定进行注册,但对所有实现都使用 DependsOn?

4

1 回答 1

6

确实是的

container.Register( 
    Classes.FromAssemblyContaining<IUserMenuDao>() 
         .BasedOn<IDataAccess>()
         .WithService.FromInterface() 
         .Configure(c => c.DependsOn(new {strConn = ConfigurationManager.ConnectionStrings["ABC123"].ConnectionString}))
    ); 
于 2012-07-27T07:00:43.480 回答