2013-09-30 79 views
2

我們的團隊工作在依賴於不同程序集的模塊上。例如。我們有一個EmailClient模塊,它爲一個特定的構建使用一個集合,爲另一個構建使用另一組完全不同的集合。這是因爲取決於我們整合到不同後端的客戶。.net動態參考,但仍然具有智能感知

我們希望爲EmailClient保留一個源代碼樹,並確保「最新」版本始終適用於所有客戶。我們在這裏面臨的挑戰是不將不必要的組件分發給一組客戶。因爲他們挑剔,並問所有這些其他文件的用途。

這引起以下錯誤,是很難在一個地方搭上:

System.IO.FileNotFoundException:未能加載文件或程序。

.Net是否提供了這樣的功能,我們可以添加對各種程序集的引用,但不能分發其中的一些程序?

+1

如果您不通過應用程序分發程序集,則代碼無法使用該程序集。如果代碼沒有使用它,爲什麼要引用它? – David

+0

這似乎是插件風格或提供程序風格架構的候選人,您可以在其中實現EmailClient的標準接口,然後使用配置設置爲具體類實現EmailClient的詳細信息。無論是DI文件還是app.config,還是MEF都是實現細節。 –

+0

謝謝Tetsujin,Jeroen也提到MEF,會看這個。 – user1620139

回答

0

你應該看看像託管擴展性框架(MEF)http://msdn.microsoft.com/en-us/library/dd460648.aspx

這樣你就可以擴充現有應用程序,而無需創建依賴於組件插件體系結構。

即使您不打算實施MEF。它會給出想法和想法,以及如何實現它自己的想法和新的

+0

謝謝Jeroen,我會檢查MEF。 – user1620139