DynamicILInfo Klasse

Definition

Stellt Unterstützung für eine alternative Vorgehensweise zum Generieren von MSIL (Microsoft Intermediate Language) und von Metadaten für eine dynamische Methode bereit. Dabei sind Methoden zum Erstellen von Token und zum Einfügen des Codes, Ausnahmenbehandlung sowie Signatur-BLOBs für lokale Variablen inbegriffen.

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
Vererbung
DynamicILInfo
Attribute

Hinweise

Mit der DynamicILInfo -Klasse können Entwickler ihre eigenen MSIL-Generatoren schreiben, anstatt zu verwenden ILGenerator.

Zum Erstellen von Instanzen anderer Typen, Aufrufen von Methoden usw. muss die von Ihnen generierte MSIL Token für diese Entitäten enthalten. Die DynamicILInfo -Klasse stellt mehrere Überladungen der GetTokenFor -Methode bereit, die token zurückgeben, die im Bereich des aktuellen DynamicILInfogültig sind. Wenn Sie beispielsweise eine Überladung der Console.WriteLine -Methode aufrufen müssen, können Sie eine RuntimeMethodHandle für diese Überladung abrufen und an die GetTokenFor -Methode übergeben, um ein Token zum Einbetten in Ihre MSIL abzurufen.

Nachdem Sie Arrays für ihre lokale Variablensignatur, Ausnahmen und den Codetext erstellt Byte haben, können Sie die SetCodeMethoden , und SetLocalSignature verwenden, SetExceptionsum sie in das DynamicMethod dem Objekt zugeordnete DynamicILInfo einzufügen.

Das Generieren eigener Metadaten und MSIL erfordert Vertrautheit mit der Dokumentation zur Common Language Infrastructure (CLI), insbesondere "Partition II: Metadatendefinition und Semantik" und "Partition III: CIL Instruction Set". Weitere Informationen finden Sie unter ECMA 335 Common Language Infrastructure (CLI).

Hinweis

Verwenden DynamicILInfo Sie nicht , um Code zu generieren, der einen Delegaten für eine andere dynamische Methode erstellt, indem Sie den Delegatenkonstruktor direkt aufrufen. Verwenden Sie stattdessen die CreateDelegate -Methode, um den Delegaten zu erstellen. Ein Delegat, der mit dem Delegatkonstruktor erstellt wird, verfügt nicht über einen Verweis auf die dynamische Zielmethode. Die dynamische Methode kann von der Garbage Collection freigegeben werden, während der Delegat noch verwendet wird.

Eigenschaften

DynamicMethod

Ruft die dynamische Methode ab, deren Text von der aktuellen Instanz generiert wird.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetTokenFor(Byte[])

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das die Signatur für die zugeordnete dynamische Methode darstellt.

GetTokenFor(DynamicMethod)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das eine aus der zugeordneten Methode aufzurufende dynamische Methode darstellt.

GetTokenFor(RuntimeFieldHandle)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das ein Feld darstellt, auf das aus der zugeordneten dynamischen Methode zugegriffen werden soll.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das ein Feld darstellt, auf das aus der zugeordneten dynamischen Methode zugegriffen werden soll. Das Feld ist vom angegebenen generischen Typ.

GetTokenFor(RuntimeMethodHandle)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das eine Methode darstellt, auf die aus der zugeordneten dynamischen Methode zugegriffen werden soll.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das eine Methode für einen generischen Typ darstellt.

GetTokenFor(RuntimeTypeHandle)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das einen Typ darstellt, der in der zugeordneten dynamischen Methode verwendet werden soll.

GetTokenFor(String)

Ruft ein im Bereich der aktuellen DynamicILInfo gültiges Token ab, das ein Zeichenfolgenliteral darstellt, das in der zugeordneten dynamischen Methode verwendet werden soll.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SetCode(Byte*, Int32, Int32)

Legt den Codetext der zugeordneten dynamischen Methode fest.

SetCode(Byte[], Int32)

Legt den Codetext der zugeordneten dynamischen Methode fest.

SetExceptions(Byte*, Int32)

Legt die Ausnahmemetadaten für die zugeordnete dynamische Methode fest.

SetExceptions(Byte[])

Legt die Ausnahmemetadaten für die zugeordnete dynamische Methode fest.

SetLocalSignature(Byte*, Int32)

Legt die lokale Variablensignatur fest, in der das Layout von lokalen Variablen für die zugeordnete dynamische Methode beschrieben wird.

SetLocalSignature(Byte[])

Legt die lokale Variablensignatur fest, in der das Layout von lokalen Variablen für die zugeordnete dynamische Methode beschrieben wird.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: