2012-12-04 36 views
0

我目前正在開發一個項目,該項目有一個工作良好的應用程序層和類庫。
但是我得到了另一個客戶端的新要求,對於相同的應用程序,除了類庫中的邏輯外,所有內容都保持不變。
所以,我想知道如果我們可以有一些解決方案,爲每個應用程序有兩個不同的類庫,並基於web.config中的appsetting,我們可以選擇加載哪個庫。
任何幫助和想法,不勝感激。智能DLL通過代碼選擇

謝謝。

+2

聽起來像你想研究像StructureMap,Ninject等控制/依賴注入框架的反轉。它們允許你提供不同的通用接口實現,可以使用配置文件進行配置。 –

+0

如果您不知道IOC是什麼 - 意識到我的答案可能會讓事情變得更糟 - http://en.wikipedia.org/wiki/Inversion_of_control或與MEF之間的區別http://stackoverflow.com/questions/1288376/ mef-vs-any-ioc – Sean

回答

0

你有沒有試過從微軟看MEF? http://en.wikipedia.org/wiki/Managed_Extensibility_Framework它允許你在運行時添加插件,這意味着你可以選擇你想要加載的dll。

+0

在這兩種情況下,我認爲我應該改變應用層的實現。對? – Krishna

+0

是的,對於MEF和IoC/DI,您都需要在「應用程序層」和「類庫」之間建立依賴關係,以便能夠在另一個實現中進行交換。你有沒有聽說過依賴倒置原理? http://en.wikipedia.org/wiki/Dependency_inversion_principle – Sean