程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 如何通過反射實現動態功能模塊加載,動態功能模塊

如何通過反射實現動態功能模塊加載,動態功能模塊

編輯:C#入門知識

如何通過反射實現動態功能模塊加載,動態功能模塊


  程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然後,可以調用類型的方法或訪問其字段和屬性。

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

 

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.       通過配置動態功能模塊

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

 

 

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved