Udostępnij za pośrednictwem


DynamicILInfo Klasa

Definicja

Zapewnia obsługę alternatywnych sposobów generowania języka pośredniego firmy Microsoft (MSIL) i metadanych dla metody dynamicznej, w tym metod tworzenia tokenów oraz wstawiania kodu, obsługi wyjątków i obiektów blob sygnatury zmiennej lokalnej.

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
Dziedziczenie
DynamicILInfo
Atrybuty

Uwagi

Klasa DynamicILInfo umożliwia deweloperom pisanie własnych generatorów MSIL zamiast używania klasy ILGenerator.

Aby utworzyć wystąpienia innych typów, wywołać metody itd., wygenerowany MSIL musi zawierać tokeny dla tych jednostek. Klasa DynamicILInfo udostępnia kilka przeciążeń GetTokenFor metody, które zwracają tokeny prawidłowe w zakresie bieżącego DynamicILInfoelementu . Jeśli na przykład musisz wywołać przeciążenie Console.WriteLine metody, możesz uzyskać RuntimeMethodHandle dla tego przeciążenia i przekazać go do GetTokenFor metody w celu uzyskania tokenu do osadzania w MSIL.

Po utworzeniu Byte tablic dla sygnatury zmiennej lokalnej, wyjątków i treści kodu można użyć SetCodemetod , SetExceptionsi SetLocalSignature , aby wstawić je do skojarzonego DynamicMethod z obiektem DynamicILInfo .

Generowanie własnych metadanych i MSIL wymaga znajomości dokumentacji infrastruktury języka wspólnego (CLI), zwłaszcza "Partition II: Metadata Definition and Semantics" i "Partition III: CIL Instruction Set". Aby uzyskać więcej informacji, zobacz ECMA 335 Common Language Infrastructure (CLI).

Uwaga

Nie należy używać DynamicILInfo do generowania kodu tworzącego delegata do innej metody dynamicznej przez bezpośrednie wywołanie konstruktora delegata. Zamiast tego użyj CreateDelegate metody , aby utworzyć delegata. Delegat utworzony za pomocą konstruktora delegata nie ma odwołania do docelowej metody dynamicznej. Metoda dynamiczna może zostać odzyskana przez odzyskiwanie pamięci, gdy delegat jest nadal używany.

Właściwości

DynamicMethod

Pobiera metodę dynamiczną, której treść jest generowana przez bieżące wystąpienie.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetTokenFor(Byte[])

Pobiera token prawidłowy w zakresie bieżącej DynamicILInfometody , reprezentującą podpis skojarzonej metody dynamicznej.

GetTokenFor(DynamicMethod)

Pobiera token, prawidłowy w zakresie bieżącego DynamicILInfoobiektu , reprezentującą metodę dynamiczną do wywołania ze skojarzonej metody.

GetTokenFor(RuntimeFieldHandle)

Pobiera token, prawidłowy w zakresie bieżącego DynamicILInfo, reprezentującego pole, do których ma być uzyskiwany dostęp z skojarzonej metody dynamicznej.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Pobiera token, prawidłowy w zakresie bieżącego DynamicILInfo, reprezentującego pole do uzyskania dostępu z skojarzonej metody dynamicznej; pole znajduje się w określonym typie ogólnym.

GetTokenFor(RuntimeMethodHandle)

Pobiera token, prawidłowy w zakresie bieżącego DynamicILInfoobiektu , reprezentującą metodę, która ma być uzyskiwana z skojarzonej metody dynamicznej.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Pobiera token prawidłowy w zakresie bieżącego DynamicILInfoobiektu , reprezentującą metodę w typie ogólnym.

GetTokenFor(RuntimeTypeHandle)

Pobiera token, prawidłowy w zakresie bieżącego DynamicILInfoelementu , reprezentującego typ, który ma być używany w skojarzonej metodzie dynamicznej.

GetTokenFor(String)

Pobiera token, prawidłowy w zakresie bieżącego DynamicILInfo, reprezentując literał ciągu do użycia w skojarzonej metodzie dynamicznej.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
SetCode(Byte*, Int32, Int32)

Ustawia treść kodu skojarzonej metody dynamicznej.

SetCode(Byte[], Int32)

Ustawia treść kodu skojarzonej metody dynamicznej.

SetExceptions(Byte*, Int32)

Ustawia metadane wyjątków dla skojarzonej metody dynamicznej.

SetExceptions(Byte[])

Ustawia metadane wyjątków dla skojarzonej metody dynamicznej.

SetLocalSignature(Byte*, Int32)

Ustawia sygnaturę zmiennej lokalnej, która opisuje układ zmiennych lokalnych dla skojarzonej metody dynamicznej.

SetLocalSignature(Byte[])

Ustawia sygnaturę zmiennej lokalnej, która opisuje układ zmiennych lokalnych dla skojarzonej metody dynamicznej.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy