2010-07-23 28 views
1

我正在研究需要使用通用服務定位器(http://commonservicelocator.codeplex.com/)的庫來提供通用的IOC支持,以便我們不會與任何消費者發生衝突。顯然,我不想直接在我的項目中引用IOC框架,但我不確定如何註釋這些部分,以便可以通過各種框架找到它們。例如,MEF通常通過使用「實現」註釋查找具有「導出」註釋和LinFu的類來查找類。這兩個註釋都是在他們各自的項目中定義的,需要我參考他們兩個。如何在不依賴IOC庫的情況下定義泛型導出?

如何避免添加所有這些類並多次註釋我的所有類?它當然不適應新的IOC框架,因爲每個新框架的註釋都需要重建。

回答

2

從文檔:

「圖書館不應配置 容器」

「作爲一個庫或框架的作者, 明白,你不應該 把任何東西放入容器 - 這是您的來電者的工作允許 申請作者選擇 他們想要的任何容器您需要 來記錄您需要的服務 regis如果你正在使用 ServiceLocation.Current環境 容器。「

所以我不認爲你需要導出任何東西,只是記錄你需要消耗什麼才能運行。並可以選擇使用ServiceLocator.Current接口來解決您需要的任何依賴關係。

+0

+1 - 我同意。你也可以提供幾個實現並允許他們選擇,但我不認爲這是推薦的。 – TheCloudlessSky 2010-07-24 01:26:28

相關問題