C 動態建立和動態使用程式集 類 方法 欄位等

2021-06-08 22:47:01 字數 1211 閱讀 5953

先需要知道動態建立這些型別是使用的一些什麼技術呢?其實只要相關動態引導程式集呀,類呀,都是使用反射,那麼動態建立也一樣使用的是反射,是屬於反射的技術!也就是將物件或者資料對映成乙個物件或者程式集儲存起來而已。

首先我們需要了解每個動態型別在.net中都是用什麼型別來表示的。

程式集:system.reflection.emit.assemblybuilder(定義並表示動態程式集)

建構函式:system.reflection.emit.constructorbuilder(定義並表示動態類的建構函式)

自定義屬性:system.reflection.emit.customattributebuilder(幫助生成自定義屬性 使用建構函式傳遞的引數來生成類的屬性)

列舉:system.reflection.emit.enumbuilder(說明並表示列舉型別)

事件:system.reflection.emit.eventbuilder(定義類的事件)

字段:system.reflection.emit.fieldbuilder(定義並表示字段。無法繼承此類)

區域性變數:system.reflection.emit.localbuilder(表示方法或建構函式內的區域性變數)

方法:system.reflection.emit.methodbuilder(定義並表示動態類的方法(或建構函式))

模組:system.reflection.emit.modulebuilder(定義和表示動態程式集中的模組)

引數:system.reflection.emit.parameterbuilder(建立或關聯引數資訊 如:方法引數,事件引數等)

屬性:system.reflection.emit.propertybuilder(定義型別的屬性 (property))

類:system.reflection.emit.typebuilder(在執行時定義並建立類的新例項)

1.如何動態建立它們了

程式集:簡單來說就是乙個以公共語言執行庫(clr)為宿主的、版本化的、自描述的二進位制檔案。(說明:定義來自c#與.net3.5高階程式設計(第四版))

模組:類似於以前的單元,用於分割不同的類和型別,以及資源(resource, 資源記錄就是字串,圖象以及其它資料,他們只在需要的時候才會被調入記憶體)。型別的meta資訊也是模組的一部分。多個模組組建成乙個程式集。

所謂動態就是在程式執行時,動態的建立和使用。

直接看**吧,其實超級簡單。

C 動態建立和動態使用程式集 類 方法 欄位等

首先需要知道動態建立這些型別是使用的一些什麼技術呢?其實只要相關動態引導程式集呀,類呀,都是使用反射,那麼動態建立也一樣使用的是反射,是屬於反射的技術!也就是將物件或者資料對映成乙個物件或者程式集儲存起來而已。首先我們需要了解每個動態型別在.net中都是用什麼型別來表示的。程式集 system.re...

建立和使用動態連線庫

摘自 一 建立動態連線庫 1.建立乙個dll專案 2.新增乙個名為 mymathfuncs 的簡單類,以執行常見的算術運算,如加 減 乘和除。應與以下內容類似 示例 mathfuncsdll.h namespace mathfuncs 請注意此 方法宣告中的 declspec dllexport 修...

建立和使用動態鏈結庫 C

我們將建立的第一種型別的庫是動態鏈結庫 dll 使用 dll 是一種重用 的絕佳方式。您不必在自己建立的每個程式中重新實現同一例程,而只需對這些例程編寫一次,然後從需要該功能的應用程式引用它們即可。本演練涵蓋以下內容 本主題假定您具備 c 語言的基礎知識。從 檔案 選單中,選擇 新建 然後選擇 專案...