91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行.NET Framework 3.5中的WPF插件開發

發布時間:2021-10-28 10:21:18 來源:億速云 閱讀:192 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關如何進行.NET Framework 3.5中的WPF插件開發,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

插件還有其他稱呼,如add-on或plug-in。

先前研究過SharpDevelop,SharpDevelop采用框架——插件的可擴展的體系結構,畢竟代碼水平比較高,對它的插件開發方式沒有學習徹底。

.NET Framework 3.5 的System.Addin命名空間讓插件開發變的簡單很多了。

1.什么是AddIns

在應用程序運行期間允許動態添加程序集。

插件開發可以在給開發完成的應用程序添加功能。我們可以創建一個主機應用程序,隨時間的推移給它添加越來越多的功能這些功能可以是開發團隊編寫的,也可以由其他供應商也可以創建插件,擴展該應用程序。

2.AddIns(MAF)的設計目標如下

應用程序容易開發插件

在運行期間高效查找插件

開發主機程序應是一個很簡單的過程,但不像開發插件那么容易

插件和主機應用程序應獨立進行維護和升級

3.MAF體系結構

MAF體系結構基于一個包含7個程序集的管道。這個管道解決了插件的版本問題。因為管道中的程序集之間的依賴性很低,所以合同、主機程序和插件升級到新版本可以完全互不干擾。

如何進行.NET Framework 3.5中的WPF插件開發

undefined

下圖是上圖的中文說明:

如何進行.NET Framework 3.5中的WPF插件開發

下圖是插件開發結構類關系圖

如何進行.NET Framework 3.5中的WPF插件開發

有了這個模型,插件端和主機端可以完全獨立地升級了,只是需要使用映射層。例如,如果主機的一個新版本使用全新的方法和屬性,合同就仍可以保持不變,只有適配器需要修改。也可以定義新的合同。適配器可以修改,也可以同時使用幾個合同。

下圖顯示了MAF體系結構的外觀為一個單一的插件。如果我們要創造更多的插件(如演示應用程序) ,我們就必須建立新的類來繼承插件適配器來完成該功能。

如何進行.NET Framework 3.5中的WPF插件開發

4.插件模型文件夾結構

如何進行.NET Framework 3.5中的WPF插件開發

除了AddIns目錄之外,其他目錄都直接包含管道特定部分的程序集。AddIns目錄為每個插件程序集包含一個子目錄。插件也可以保存在完全獨立于其他管道組件的目錄中。

MAF需要使用反射來動態加載,才能獲得插件的所有信息。而且,對于許多插件而言,這還會增加主機應用程序的啟動時間。因此,MAF使用一個 高速緩存,來保存管道組件的信息。該高速緩存是由安裝插件的程序創建的,如果主機應用程序有管道目錄的寫入權限,該高速緩存就由主機應用程序創建。

在目錄結構中有一個PipelineSegments.store文件,它是一個外接程序,有兩個任務:

將有關所有外接程序和管線段的信息注冊到緩存文件中。

◆通過搜索緩存查找外接程序的指定宿主視圖的外接程序

在AddIns文件夾里面會有一個Addins.store文件,它的作用就是讓程序查找插件顯示在應用程序中。

如何進行.NET Framework 3.5中的WPF插件開發

應用插件開發對應用系統來講確實有很大好處,很多應用程序都使用了插件開發,例如:Visual Studio、Eclipse、還有瀏覽器IE、FF,雖然我們不是這些軟件的開發商,但是我們仍然可以在這些軟件里添加我們需要的功能,插件開發更容易維護和升級系統,而且對提高程序運行效率也有很大幫助。

網上關于Addins的示例代碼比較少,自己找了兩個,大家研究下。

關于如何進行.NET Framework 3.5中的WPF插件開發就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

wpf
AI

郁南县| 信阳市| 铜鼓县| 内丘县| 鄂伦春自治旗| 舟曲县| 东辽县| 化州市| 县级市| 军事| 百色市| 信阳市| 集安市| 呼图壁县| 兴仁县| 将乐县| 太谷县| 浏阳市| 盐山县| 荆门市| 青川县| 吴旗县| 五原县| 洞口县| 江口县| 石嘴山市| 彰武县| 嘉定区| 安宁市| 太原市| 阿拉善盟| 东兰县| 通州区| 沿河| 双流县| 商河县| 通道| 子长县| 浪卡子县| 沙田区| 白银市|