2014-02-18 109 views
3

我正在研究目前使用Windsor作爲DI框架的C#/ MVC應用程序,並且剛剛開始探索MEF以使應用程序更具可擴展性。它的工作很好,直到我的插件需要依賴滿足的地步。如何注入Windsor註冊的MEF [ImportingConstructor]依賴關係?

如何將Windsor管理的依賴注入到由MEF導入的類中,最好使用[ImportingConstructor]?

我試過從MefContrib擴展ContainerAdapterBase,但無法弄清楚如何讓它與[ImportingConstructor]一起工作。另外,使用MEF for IoC不是一種選擇。

謝謝!

+1

你有沒有考慮用Windsor創建插件而不是使用MEF(我對MEF不是很熟悉,但windsor是超級可擴展的)。 – Marwijn

+0

我喜歡使用MEF的想法,因爲它非常簡單,並且是它的設計目的,並且支持一些Windsor不喜歡在運行時丟棄的DLL中拾取類。我寧願使用溫莎的一切,但感覺有點像鞋 - 它在它不是正確的工具。 – GoatInTheMachine

回答

0

更新: 我目前的解決方案是編寫一個由Windsor管理的簡單'DSL',它提供插件所需的全部功能,然後在MEF通過插件實例時手動插入。可能有點令人討厭,但它的工作原理,這也意味着我不必從插件做任何服務位置,並提供了一個很好的邊界,圍繞什麼插件是'允許'做的。

關於這種方法的任何想法將不勝感激。

+0

我現在正在使用MEF&Unity解決同樣的問題。謹慎發佈一些關於你如何解決問題的線索? –

+0

不幸的是,我們在一年後放棄了MEF方法,並且我再也無法訪問代碼,對不起...... DSL方法雖然在需要時仍然運行良好。 – GoatInTheMachine