DynamicILInfo Kelas

Definisi

Menyediakan dukungan untuk cara alternatif untuk menghasilkan bahasa perantara Microsoft (MSIL) dan metadata untuk metode dinamis, termasuk metode untuk membuat token dan untuk menyisipkan kode, penanganan pengecualian, dan blob tanda tangan variabel lokal.

public ref class DynamicILInfo sealed
public ref class DynamicILInfo
public sealed class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
type DynamicILInfo = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
Public NotInheritable Class DynamicILInfo
Public Class DynamicILInfo
Warisan
DynamicILInfo
Atribut

Keterangan

Kelas ini DynamicILInfo memungkinkan pengembang untuk menulis generator MSIL mereka sendiri alih-alih menggunakan ILGenerator.

Untuk membuat instans jenis lain, metode panggilan, dan sebagainya, MSIL yang Anda buat harus menyertakan token untuk entitas tersebut. Kelas DynamicILInfo menyediakan beberapa kelebihan beban GetTokenFor metode , yang mengembalikan token yang valid dalam cakupan saat ini DynamicILInfo. Misalnya, jika Anda perlu memanggil kelebihan beban Console.WriteLine metode, Anda dapat memperoleh RuntimeMethodHandle untuk kelebihan beban tersebut GetTokenFor dan meneruskannya ke metode untuk mendapatkan token untuk disematkan di MSIL Anda.

Setelah Anda membuat Byte array untuk tanda tangan variabel lokal, pengecualian, dan isi kode, Anda dapat menggunakan SetCodemetode , SetExceptions, dan SetLocalSignature untuk menyisipkannya ke dalam DynamicMethod yang terkait dengan objek Anda DynamicILInfo .

Menghasilkan metadata Anda sendiri dan MSIL memerlukan keakraban dengan dokumentasi Common Language Infrastructure (CLI), terutama "Partisi II: Definisi metadata dan Semantik" dan "Partisi III: Set Instruksi CIL". Untuk informasi selengkapnya, lihat Infrastruktur Bahasa Umum (CLI) ECMA 335.

Catatan

Jangan gunakan DynamicILInfo untuk menghasilkan kode yang membuat delegasi ke metode dinamis lain dengan memanggil konstruktor delegasi secara langsung. Sebagai gantinya CreateDelegate , gunakan metode untuk membuat delegasi. Delegasi yang dibuat dengan konstruktor delegasi tidak memiliki referensi ke metode dinamis target. Metode dinamis mungkin diklaim kembali oleh pengumpulan sampah saat delegasi masih digunakan.

Properti

DynamicMethod

Mendapatkan metode dinamis yang isinya dihasilkan oleh instans saat ini.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetTokenFor(Byte[])

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili tanda tangan untuk metode dinamis terkait.

GetTokenFor(DynamicMethod)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili metode dinamis yang akan dipanggil dari metode terkait.

GetTokenFor(RuntimeFieldHandle)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili bidang yang akan diakses dari metode dinamis terkait.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili bidang yang akan diakses dari metode dinamis terkait; bidang berada pada jenis generik yang ditentukan.

GetTokenFor(RuntimeMethodHandle)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili metode yang akan diakses dari metode dinamis terkait.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili metode pada jenis generik.

GetTokenFor(RuntimeTypeHandle)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili jenis yang akan digunakan dalam metode dinamis terkait.

GetTokenFor(String)

Mendapatkan token, valid dalam cakupan saat ini DynamicILInfo, mewakili string harfiah yang akan digunakan dalam metode dinamis terkait.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
SetCode(Byte*, Int32, Int32)

Mengatur isi kode dari metode dinamis terkait.

SetCode(Byte[], Int32)

Mengatur isi kode dari metode dinamis terkait.

SetExceptions(Byte*, Int32)

Mengatur metadata pengecualian untuk metode dinamis terkait.

SetExceptions(Byte[])

Mengatur metadata pengecualian untuk metode dinamis terkait.

SetLocalSignature(Byte*, Int32)

Mengatur tanda tangan variabel lokal yang menjelaskan tata letak variabel lokal untuk metode dinamis terkait.

SetLocalSignature(Byte[])

Mengatur tanda tangan variabel lokal yang menjelaskan tata letak variabel lokal untuk metode dinamis terkait.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk