C 使用反射載入多個程式集

2021-09-07 22:35:36 字數 1131 閱讀 2725

當開發外掛程式的時候需要用到反射,在客戶端動態載入遍歷程式集,並呼叫每個程式集的方法。

建立乙個控制台應用程式,首先設計乙個介面:

public

inte***ce isay

在控制台應用程式下建立plugins資料夾,控制台的可執行檔案和所有程式集檔案都生成在這裡。右鍵控制台專案--"屬性"--"生成",把"輸出路徑"設定成plugins資料夾。 

建立類庫專案assembly1,新增對控制台專案的引用,並建立實現isay介面的類:

namespace assembly1
}
}
右鍵類庫專案assembly1--"屬性"--"生成",把"輸出路徑"設定成plugins資料夾,並生成類庫專案assembly1。

客戶端需要找到所有程式集中所有實現isay介面的類。其基本思路是:

→找到plugins資料夾下所有dll字尾的檔案

→遍歷這些檔案,根據檔名動態引導程式集

→遍歷程式集中實現isay介面的型別,並儲存到isay型別的集合中

→客戶端遍歷isay型別的集合,呼叫isay的介面方法

再建立乙個類庫專案assembly2,新增對控制台專案的引用,並建立實現isay介面的類:

namespace assembly2
}
}
右鍵類庫專案assembly2--"屬性"--"生成",把"輸出路徑"設定成plugins資料夾,並生成類庫專案assembly2。

再次執行控制台專案。

程式集載入和反射

元資料表是用一系列字段表,方法表,型別定義表組成的。可以利用system.reflection命名空間中包含的型別,可以寫 來反射這些元資料表。具體的反射機制我是這樣理解的 首先應該清楚的了解到,system.reflection命名空間中的型別為程式集或模組中包含的換資料表提供了乙個物件模型 通過...

程式集載入和反射

最近一直都在看關於程式集載入和反射方面的資料,所以在這裡把我所學習到的東西記錄下來,方便自己以後複習,也給園子裡面不懂的朋友參考。net中反射在執行中過程中解析程式集中的元資料,獲得型別中的成員 包括字段 構造器 方法 屬性 事件等 資訊。把下面的類放在乙個類庫工程中,並編譯生成程式集 例如為cla...

談談 程式集載入和反射

最近一直都在看關於程式集載入和反射方面的資料,所以在這裡把我所學習到的東西記錄下來,方便自己以後複習,也給園子裡面不懂的朋友參考。net中反射在執行中過程中解析程式集中的元資料,獲得型別中的成員 包括字段 構造器 方法 屬性 事件等 資訊。把下面的類放在乙個類庫工程中,並編譯生成程式集 例如為cla...