程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#插件開發簡單模型

C#插件開發簡單模型

編輯:C#入門知識

一、前言

插件模型指應用程序由一些動態的獨立模塊構成,每個模塊均具有一個或多個服務,並滿足一定的插件協議,能夠借助主程序實現主程序-插件,插件-插件之間的通訊。它定義了一套公共的接口,通過接口與插件進行通信,主要是通過反射來獲取相關的屬性和方法,然後再執行指定的操作。其實,它也可以理解為定義一套通用的解決方案,通過反射來獲取相應的程序集的相關類型,然後執行這些指定類型的相關操作。它是一種即插即用的方案,更新及維護簡便。

本文僅僅是描述插件開發的大體模型,設計比較簡單,主要的步驟如下:

(1)、定義公共的接口以及抽象類。

(2)、定義和實現相關組件。

(3)、實現通用程序集反射操作類。

 

其中,公共的接口和抽象類定義在組件Jasen.Framework.Core中,該組件中提供通用程序集反射操作類AssemblyUtility;具體實現的相關組件為Jasen.Framework.Oracle、Jasen.Framework.Access和Jasen.Framework.SqlServer,它們都實現了Jasen.Framework.Core中的公共接口。客戶端可以根據實際情況來進行相應的操作。相關組件圖如下:

\

 

 

二、公共接口和抽象類的定義以及相關組件的定義和實現

首先,定義公共的接口以及抽象類,如下類圖所示,定義一個公共的接口IDataTable,定義一個抽象類DataTable,這些公共的類型放置在最頂端的程序集中。而其他組件將分別重新創建,實現相對應的功能,如SqlServerDataTable、OracleDataTable和AccessDataTable實現各自的功能。注意:Assembly.LoadFile(file)動態加載程序集時,該程序集在當前的運行環境中必須不存在的,否則可能會出現意想不到的數據異常,因此相關組件的實現必須是獨立的(僅僅是實現公共的接口)。

\

 

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