2011-05-05 72 views
2

我正在使用Castle Windsor來處理我的依賴注入,並且至今一直非常棒。如何在多個程序集中使用WindsorInstaller進行註冊

但是,我現在試圖擴展我的項目,並添加一些額外的庫 - 即時通訊現在正在努力找出最佳的方式來利用城堡。

我目前有以下組件

MyProject.Interfaces(包含IDBContext接口) MyProject.BusinessLogic(包含溫莎城堡實現) MyProject.DataAccess(包含實施IDBContext的)

我現在有安裝程序名爲DBContextInstaller,它只是實現了以下內容:

public void Install(IWindsorContainer container, IConfigurationStore store) 
{ 
    container.Register(AllTypes.FromThisAssembly() 
       .BasedOn<IDBContext>() 
       .WithService 
       .DefaultInterface() 
       .Configure(reg => reg.LifeStyle.PerWebRequest)); 
} 

我現在在THI有一個新議會s項目 - 讓我們稱之爲MyProject.UserService,它恰好有一個新的IDBContext的具體實現。

所以我的問題 - 我如何更改我的Container.Register語句讓它檢查多個庫。注意我完全希望將來有更多的庫被添加到這個場景中。我希望這個安裝程序能夠找到所有的實現。

TIA

+0

如果你有IDBContext'的'多種實現,其中之一應該應用挑?或者在另一個應用程序中使用了'MyProject.UserServices'(因此您是否在多個應用程序上共享程序集)? – Steven 2011-05-05 16:01:49

回答

4

你可以使用AllTypes.FromAssemblyInDirectory ...

container.Register(AllTypes.FromAssemblyInDirectory(new AssemblyFilter(folderPath))); 
+0

完美 - 我正在尋找。謝謝你的幫助 – 2011-05-06 10:31:36

相關問題