2010-02-18 66 views

回答

7

MEF可以讓你設計一個可擴展的系統。根據我的經驗,您可以設計接口,創建具有這些接口的實現的庫,並在運行時動態加載它們。您還可以確定應該如何加載這些擴展 - 在相同的應用程序域中,還是新的一個等,您可以在一個目錄指向它,告訴它讓所有某個接口的實現,並加載那些在應用程序中使用..

所以,因爲你的應用程序並不需要知道它的所有功能都在前面,並且可以動態加載它們,可以說它是「可擴展的」。

或者,還有MAF,託管外接框架或System.AddIn .NET中的命名空間。這有一些重疊,但更加針對插件或插件模型。它具有管理版本控制的功能,以及處理主機和加載項之間的向後兼容性,每個版本都有不同的接口版本。

要開始使用MEF,我覺得最好的地方是這裏大概:http://www.codeplex.com/MEF
有很多信息那裏起步,文檔,甚至一個論壇...

+2

AFAIK MEF始終工作在當前的應用程序域,並且不提供應用程序域隔離。只有MAF這樣做。 – 2010-11-11 15:02:29