Metode dan rakitan dinamis pancaran

Bagian ini menjelaskan sekumpulan jenis terkelola di System.Reflection.Emit namespace layanan yang memungkinkan pengkompilasi atau alat untuk memancarkan metadata dan bahasa perantara umum (CIL) pada waktu proses dan secara opsional menghasilkan file portabel yang dapat dieksekusi (PE) pada disk. Mesin skrip dan kompiler adalah pengguna utama namespace ini. Di bagian ini, fungsionalitas yang disediakan oleh System.Reflection.Emit namespace disebut sebagai pancaran pantulan.

Keluaran refleksi menyediakan kemampuan berikut:

  • Menetapkan metode global ringan saat dijalankan, menggunakan kelas DynamicMethod, dan menjalankan menggunakan delegasi.
  • Menentukan rakitan pada durasi dan kemudian menjalankan dan/atau menyimpannya ke disk.
  • Menentukan rakitan pada waktu proses, menjalankan, lalu membongkar, dan mengizinkan pengumpulan sampah untuk mendapatkan kembali sumber dayanya.
  • Menetapkan modul dalam rakitan baru pada saat durasi dan kemudian menjalankan dan/atau menyimpannya ke disk.
  • Menentukan jenis dalam modul pada saat durasi, membuat instans dari jenis ini, dan memanggil metodenya.
  • Menentukan informasi simbolis untuk modul yang ditentukan yang dapat digunakan oleh alat seperti debugger dan profiler kode.

Selain jenis terkelola di System.Reflection.Emit namespace layanan, ada antarmuka metadata tidak terkelola yang dijelaskan dalam dokumentasi referensi Antarmuka Metadata. Keluaran refleksi terkelola memberikan pemeriksaan kesalahan semantik yang lebih kuat dan tingkat abstraksi metadata yang lebih tinggi daripada antarmuka metadata yang tidak terkelola.

Sumber daya lain yang berguna untuk bekerja dengan metadata dan CIL adalah dokumentasi Common Language Infrastructure (CLI), terutama "Partisi II: Definisi metadata dan Semantik" dan "Partisi III: Set Instruksi CIL". Dokumentasi tersedia online di situs Web Ecma.

Referensi

OpCodes
Membuat katalog kode instruksi CIL yang dapat Anda gunakan untuk membangun isi metode.

System.Reflection.Emit
Berisi kelas terkelola yang digunakan untuk memancarkan metode, rakitan, dan jenis dinamis.

Type
Menjelaskan kelas Type, yang mewakili jenis dalam refleksi terkelola dan keluaran refleksi, dan yang merupakan kunci penggunaan teknologi ini.

System.Reflection
Berisi kelas terkelola yang digunakan untuk menjelajahi metadata dan kode terkelola.