若干年前,老周寫了幾篇有關(guān)MEF的爛文,簡單地說,MEF是一種動態(tài)擴展技術(shù),比如可以指定以某個程序集或某個目錄為搜索范圍,應(yīng)用程序在運行時會自動搜索符合條件的類型,并自動完成導入,這樣做的好處是,主程序的代碼不用改來改去,只需要把擴展的程序集放到對應(yīng)的目錄下就可以了。
MEF不僅可以用于“看不見”的類型擴展上,對于“看得見”的類型照樣適用,比如窗口、控件之屬,你要是夠牛逼的話,甚至可以把它用到ASP.NET上,不過這個玩意兒估計要配合重寫路由規(guī)則才能實現(xiàn),根據(jù)URL傳的參數(shù)來跳轉(zhuǎn)到具體的頁面。
較為簡單的,像Windows Forms中的窗口,WPF中的窗口或控件,就可以直接運用MEF來完成擴展,主應(yīng)用程序界面可以動態(tài)生成菜單項或按鈕來打開窗口就可以了。而各個窗口的實現(xiàn)代碼可以寫在一個類庫項目中。
下面,咱們用一個實實在在的例子來說明一下。
新建一個類庫項目,然后在里面做三個WPF窗口,XAML文檔如何與代碼類關(guān)聯(lián),這個不要問我,問MSDN姐姐去。
因為這是做測試,窗口的UI布局你可以隨便設(shè)計。
給大家一