2012-07-26 66 views
1

我有同一接口的多个实现都具有相同的构造函数参数(strConn)。是否有可能注册所有的实施与1 container.Register电话?Castle Windsor:注册具有相同构造函数参数的接口的所有实现

以下是我有:

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

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

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

有没有通过类似的代码示例#1,但使用DependsOn全部实现常规注册方式?

回答

5

是事实上

container.Register( 
    Classes.FromAssemblyContaining<IUserMenuDao>() 
     .BasedOn<IDataAccess>() 
     .WithService.FromInterface() 
     .Configure(c => c.DependsOn(new {strConn = ConfigurationManager.ConnectionStrings["ABC123"].ConnectionString})) 
    ); 
+0

美丽。感谢你的回答! – GitCarter 2012-07-27 14:05:46

+0

加油!自2012年以来,这么多年了,但仍然非常有帮助 - 非常感谢! – 2016-07-09 16:43:42

相关问题