2012-07-26 47 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

相關問題