[轉] 通過反射實現動態功能模組載入

來源:互聯網
上載者:User

標籤:

原文 如何通過反射實現動態功能模組載入

程式集包含模組,而模組包含類型,類型又包含成員。反射則提供了封裝程式集、模組和類型的對象。您可以使用反射動態地建立類型的執行個體,將類型綁定到現有對象,或從現有對象中擷取類型。然後,可以調用類型的方法或訪問其欄位和屬性。

  下面我們將介紹如何通過不使用反射的方式和使用反射的方式載入功能模組。實現效果:

1. WinForm 主程式

主程式我們使用Winform程式,VS2008 工具C#語言開發。包括工具列、狀態列及TabControl控制項。我們使用TabControl 作為功能模組容器,裝載各個功能模組。實現效果如下:

2. 不使用反射方式載入功能

新增資訊資料功能模組項目,項目增加資料管理(UCCustomerInfo)使用者控制項。資料管理顯示、載入、匯入、匯出資料功能。

2.1. WinForm 主程式調用

WinForm 添加資料管理項目引用。點擊資訊資料時,執行個體資料管理功能模組進行載入。

3. 使用反射方式載入功能

使用反射方式載入功能,需要定義功能模組介面、設計配置功能模組、主程式讀取設定檔動態載入功能模組。

3.1. 定義功能模組介面

功能模組介面(UCModule)定義為使用者控制項(UserControl),虛擬兩方法,供具體功能模組進行重寫。

3.2. 實現功能模組執行個體

功能模組還是前資訊資料管理功能,但不是繼承使用者控制項(UserControl),而是繼承功能模組介面(UCModule)。

3.3. 設計功能模組配置

功能模組配置採用xml檔案定義,定義為:模組編號、模組名稱、模組項目、模組對象。

3.4. 通過配置動態功能模組

讀取功能模組配置,返回系統定義的功能模組列表。增加工具列按鈕,點擊工具列按鈕時,載入配置的功能模組項目。

至此,如何通過反射動態載入功能模組已講解完畢。從兩樣本實現的方式,我們可明顯看出,採用動態載入的方式,比直接使用的方式還是要複雜得多,所以小型項目、團隊成員不多的情況下,還是建議不使用反射比較好。

 

[轉] 通過反射實現動態功能模組載入

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.