我們的團隊工作在依賴於不同程序集的模塊上。例如。我們有一個EmailClient模塊,它爲一個特定的構建使用一個集合,爲另一個構建使用另一組完全不同的集合。這是因爲取決於我們整合到不同後端的客戶。.net動態參考,但仍然具有智能感知
我們希望爲EmailClient保留一個源代碼樹,並確保「最新」版本始終適用於所有客戶。我們在這裏面臨的挑戰是不將不必要的組件分發給一組客戶。因爲他們挑剔,並問所有這些其他文件的用途。
這引起以下錯誤,是很難在一個地方搭上:
System.IO.FileNotFoundException:未能加載文件或程序。
.Net是否提供了這樣的功能,我們可以添加對各種程序集的引用,但不能分發其中的一些程序?
如果您不通過應用程序分發程序集,則代碼無法使用該程序集。如果代碼沒有使用它,爲什麼要引用它? – David
這似乎是插件風格或提供程序風格架構的候選人,您可以在其中實現EmailClient的標準接口,然後使用配置設置爲具體類實現EmailClient的詳細信息。無論是DI文件還是app.config,還是MEF都是實現細節。 –
謝謝Tetsujin,Jeroen也提到MEF,會看這個。 – user1620139