日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF)

發布時間:2024/9/5 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編譯并運行快速入門

需要在VisualStudio 2010上運行此快速入門示例

代碼下載:ModularityWithMef.zip

先重新生成解決方案

再按F5運行此示例

說明:

在此快速入門示例解決方案的

ModularityWithMef.Desktop程序集中

加入了生成成功時的“后期生成事件命令行”

IF NOT EXIST "$(TargetDir)\DirectoryModules"

mkdir "$(TargetDir)\DirectoryModules"

此命令含義為:

如果在此程序集的bin目錄中沒有DirectoryModules目錄

則創建此目錄

預先生成事件/后期生成事件命令行的宏請看MSDN的注釋:

http://msdn.microsoft.com/zh-cn/library/aa833259(v=vs.80).aspx

可以在程序集->屬性->生成事件中查看修改這些命令行

ModuleB程序集的成功生成時的“后期生成事件命令行”

xcopy "$(TargetDir)ModularityWithMef.Desktop.ModuleB.dll"

"$(SolutionDir)ModularityWithMef.Desktop\bin\$(ConfigurationName)\DirectoryModules\" /Y

含義為

把自身生成的dll復制到DirectoryModules目錄下

ModuleD的程序集也有類似的命令行

另外

ModuleE和ModuleF生成的DLL會被拷貝到

ModularityWithMef.Desktop程序集的debug目錄下

演練

運行程序

1.

主窗口包含六個模塊

每個模塊都展示了各自的初始化狀態。

應用程序加載的時候

程序就發現并初始化了模塊A和模塊D

程序啟動的時候,通過監視目錄,

發現了ModuleD,就把它初始化了。

當模塊A可用的時候才可被加載

模塊A依賴于模塊D

當模塊D加載之后,模塊A才被初始化

窗口下部的跟蹤區域顯示了模塊初始化的信息

注意:

如果沒有依賴關系的話,模塊的加載是無順序的。

2.

鼠標移動到模塊A控件上,顯示了一個描述性提示,如下圖:

3.

提示信息為:

當前控件的狀態,是否被發現,

是否被初始化,下載時間和依賴性等信息

4.

點擊模塊B和模塊C

兩個模塊的初始化信息都會隨之改變

點擊這兩個模塊會觸發這兩個模塊的加載事件

系統通過監視文件夾發現模塊B

模塊C是被直接引用到系統中的

這兩個模塊都是在需要的時候才被加載的

5.

當點擊模塊F的時候,

模塊E和模塊F被加載。如下圖

雖然模塊F先被點擊

但是由于依賴關系的原因

系統先初始化模塊E,再初始化模塊F

http://www.cnblogs.com/liulun/archive/2012/03/19/2405940.html

轉載于:https://www.cnblogs.com/tianciliangen/p/4968264.html

總結

以上是生活随笔為你收集整理的【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。