DynamicILInfo Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 DynamicILInfo der -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 der 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 abzurufen, das in Ihre MSIL eingebettet werden soll.
Nachdem Sie Arrays für die Signatur, Ausnahmen und den Codetext ihrer lokalen Variablen erstellt Byte haben, können Sie die SetCodeMethoden , und SetLocalSignature verwenden, SetExceptionsum sie in die DynamicMethod dem Objekt zugeordnete DynamicILInfo Methode 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-Befehlssatz". Weitere Informationen finden Sie unter ECMA 335 Common Language Infrastructure (CLI).
Hinweis
Verwenden DynamicILInfo Sie nicht zum Generieren von Code, 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 Delegatenkonstruktor erstellt wird, weist keinen Verweis auf die dynamische Zielmethode auf. Die dynamische Methode kann von der Garbage Collection zurückgefordert 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) |