基於Create composite modular UI application in WPF using MEF and PRISM文章的指導,我正在構建一個小型,簡單的(現在)模塊化應用程序。到目前爲止,我有一個主窗口,有兩個區域,一個Bootstrapper
類,以及兩個模塊項目ModuleA和ModuleC,它們只導出它們自己。他們還每個地方AA視圖在主窗口的地區之一(一個UserControl
),例如:如何在基於MEF的模塊化應用程序中公開模塊功能?
[ModuleExport(typeof(ModuleC))]
public class ModuleC: IModule
{
public void Initialize()
{
IRegionManager regionManager = (IRegionManager)ServiceLocator.Current.GetInstance(typeof(IRegionManager));
regionManager.Regions["Region2"].Add(new MoneyUserControl());
}
}
我的目標是有一個大的UI區域在MainWindow
,其被使用的電流,高正在使用高級應用程序功能,並且此功能是導入的模塊。雖然這些模塊有許多共同點,並且目前是單片應用程序的一部分,但我基本上只是努力提供基本服務的框架(MainWindow
),而應用程序的每個功能都作爲模塊導入。
我希望活動模塊向主窗口提供菜單項(命令)。我很容易用「手動」來做這件事,例如,一個IModuleWithMenu
接口,並有主窗口查詢和整合的菜單,或在主窗口中的「IMenuHost`接口,並具備模塊推它的菜單命令英寸
不過,我不禁想一定作爲我已經使用MEF的一種更好的方式,並且具有加載模塊的導出和導入目錄。當然,我可以查詢導出並過濾那些命令,並將它們連接到菜單或其他形式的命令調用,但不提供像這樣已經完成或關閉的東西,我將我自己的代碼放到最小化,從而也就是bug的風險。
另外,額外的問題:有沒有人有複製或鏈接到建設具有MEF的複合應用程序(主要在WPF中,但我可以適應其他WPF)的複合應用程序的真正好的教程問題,因爲它應該完成。我所做的文章僅僅是對模塊,目錄和MEF本身的簡單介紹。我真的很喜歡一些東西,真正的技術性和深度。圖書購買甚至可能是有序的。
謝謝你的回答。它使我得到更多的閱讀和學習。 – ProfK