共用方式為


發出動態方法和組件

本節描述 System.Reflection.Emit 命名空間中的一組 Managed 型別,它可讓編譯器或工具在執行階段發出中繼資料和 Microsoft Intermediate Language (MSIL),並在磁碟上選擇性地產生可移植執行檔 (PE)。 指令碼引擎和編譯器是這命名空間的主要使用者。 在本節中,System.Reflection.Emit 命名空間提供的功能都稱為反映 (Reflection) 發出。

反映發出提供下列功能:

  • 使用 DynamicMethod 類別在執行階段定義輕量型全域方法,並使用委派來加以執行。

  • 在執行階段定義組件,然後執行這些組件及 (或) 將它們儲存至磁碟。

  • 在執行階段定義組件、執行這些組件然後卸除它們,並允許記憶體回收重新取回它們的資源。

  • 在執行階段定義新組件中的模組,然後執行這些模組及 (或) 將它們儲存至磁碟。

  • 在執行階段定義模組中的型別、建立這些型別的執行個體,以及叫用它們的方法。

  • 定義已定義模組的符號資訊,以供類似偵錯工具和程式碼分析工具 (Profiler) 的工具所使用。

除了 System.Reflection.Emit 命名空間中的 Managed 型別之外,還有一些 Unmanaged 中繼資料介面會在 中繼資料介面 參考文件中描述。 Managed 反映發出提供了較強的語意錯誤檢查,以及比 Unmanaged 中繼資料介面較高階的中繼資料抽象。

將中繼資料和 MSIL 一起使用的另一項有用的資源是 Common Language Infrastructure (CLI) 文件,特別是<Partition II: Metadata Definition and Semantics>和<Partition III: CIL Instruction Set>。 您可以從 MSDN (英文) 和 Ecma 網站 (英文) 取得這份文件。

在本節中

參考

  • OpCodes
    為您可用來建置方法主體的 MSIL 指令碼編目。

  • System.Reflection.Emit
    包含用來發出動態方法、組件和型別的 Managed 類別。

  • Type
    描述 Type 類別,此類別表示 Managed 反映和反映發出中的型別,也是使用這些技術的關鍵所在。

  • System.Reflection
    包含用來探索中繼資料和 Managed 程式碼的 Managed 類別。

相關章節