2. 外掛程式資訊的儲存與獲取
乙個外掛程式需要有它的名稱 、版本等資訊。作為設計者的你,也一定要留下你的尊姓大名和個人**等用來宣傳自己。 c# 的新特性——屬性, 就是乙個很好的解決方案。因此我們定義乙個從 system.attribute 繼承來的類 plugininfoarrtibute :
///
/// 用來指定乙個外掛程式的相關資訊
///
public class plugininfoattribute : system.attribute
public plugininfoattribute(
string name , string version ,
string author , string webpage , bool loadwhenstart )
public string name }
public string version }
public string author }
public string webpage }
public bool loadwhenstart }
///
/// 用來儲存一些有用的資訊
///
public object tag
set
} ///
/// 用來儲存序號
///
public int index
set
} private string _name = "";
private string _version = "";
private string _author = "";
private string _webpage = "";
private object _tag = null ;
private int _index = 0;
// 暫時不會用
private bool _loadwhenstart = true ; }
用這個類修飾你的外掛程式,並讓他實現 iplugin 介面:
3. 載入外掛程式
現在就得用到 system.refelction 命名空間了。程式在啟動時會搜尋 plugins 目錄下的每乙個檔案。對於每乙個檔案,如果它是乙個外掛程式,就用 assembly 物件載入它。然後列舉程式集中的每乙個物件。判斷乙個程式集是否為我們的外掛程式的方法是判斷它是否直接或間接實現自 iplugin。用下面的函式,傳遞從程式集列舉的物件的system.type。
private bool isvalidplugin( type t )
} return ret; }
若條件都滿足,isvalidplugin() 就會返回 true 。接著程式就會建立這個物件並把它存於乙個 arraylist 中。
plugins.add( pluginassembly.createinstance( plugingtype.fullname ) );
現在,你就可以撰寫測試**了。
Visual C 外掛程式構架實戰 一
一 引言 1.問題的引入 假設你設計的程式已經部署到使用者的計算機上,並且能夠正常執行了。但是有一天,使用者打來了 他們要求增加新的功能。確定了使用者的需求後,你竟然發 現原有的軟體架構已經無法勝任新增任務的需求 你需要重新設計這個應用了!但問題是,就算你又用了乙個開發周期完成了使用者需要的應用,卻...
Visual C 外掛程式構架實戰(二)
二 設計過程 好了,現在我們準備把所有的核心 都放在 cspluginkernel 命名空間中。用vside建立乙個c 類庫工程。在命名空間 cspluginkernel 中開始我們的 1.介面設計 我們的程式編輯器會向外掛程式開放正在編輯的文件物件。程式啟動後,就列舉每乙個外掛程式並把它連線到主程...
C 外掛程式構架實戰
c 外掛程式構架實戰 http blog.csdn.net jery lee archive 2004 08 01 57951.aspx c 外掛程式構架實戰 visual c 外掛程式構架實戰補遺 主題 visual c 外掛程式構架實戰補遺 在軟體開發的過程中,設計的過程往往比寫 的過程要難得多...