本節描述命名空間中 System.Reflection.Emit 一組受管理型別,允許編譯器或工具在執行時輸出元資料與通用中間語言(CIL),並可選擇性地產生磁碟上的可攜式可執行檔(PE)。 腳本引擎和編譯程式是這個命名空間的主要使用者。 在本節中,命名空間所提供的 System.Reflection.Emit 功能稱為 反映發出。
反射發射提供以下功能:
- 在執行時用 類別 DynamicMethod 定義輕量級全域方法,並用代理執行它們。
- 在執行時定義組件,然後執行它們和/或儲存到磁碟。
- 在執行時定義組件、執行它們,然後卸載它們,並允許垃圾回收機制回收其資源。
- 在執行時在新組件中定義模組,然後執行和/或儲存到磁碟。
- 在執行時在模組中定義型別,建立這些型態的實例,並呼叫它們的方法。
- 為調試程式和程式代碼分析工具等工具可以使用的已定義模組定義符號資訊。
除了命名空間中的System.Reflection.Emit 受管理型別之外,還有中繼資料介面(.NET Framework)和中繼資料介面(.NET)中所述的非受管理元數據介面。 受控反射發射比非受控元數據介面提供更強的語意錯誤檢查和更高層次的元數據抽象。
使用元數據和 CIL 的另一個實用資源是 Common Language Infrastructure (CLI) 檔,特別是「數據分割 II:元數據定義與語意」和「數據分割 III:CIL 指令集」。 檔可在 Ecma 網站上在線取得。
Reference
OpCodes
編錄可用來建置方法主體的 CIL 指示代碼。
System.Reflection.Emit
包含用來發出動態方法、元件和類型的Managed類別。
Type
描述 Type 類別,該類別代表受控反射和反射發射中的型別,並且是使用這些技術的關鍵。
System.Reflection
包含用來探索元數據和受控程序碼的受控類別。