DynamicILInfo Klass

Definition

Ger stöd för alternativa sätt att generera Microsoft mellanliggande språk (MSIL) och metadata för en dynamisk metod, inklusive metoder för att skapa token och för att infoga kod, undantagshantering och lokala blobbar för variabelsignatur.

public ref class DynamicILInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class DynamicILInfo
public class DynamicILInfo
[<System.Runtime.InteropServices.ComVisible(true)>]
type DynamicILInfo = class
type DynamicILInfo = class
Public Class DynamicILInfo
Arv
DynamicILInfo
Attribut

Kommentarer

Med DynamicILInfo klassen kan utvecklare skriva egna MSIL-generatorer i stället för att använda ILGenerator.

Om du vill skapa instanser av andra typer, anropa metoder och så vidare måste den MSIL som du genererar innehålla token för dessa entiteter. Klassen DynamicILInfo innehåller flera överlagringar av GetTokenFor metoden, som returnerar token som är giltiga i omfånget för den aktuella DynamicILInfo. Om du till exempel behöver anropa en överlagring av Console.WriteLine-metoden, kan du hämta en RuntimeMethodHandle för den överlagringen och skicka den till GetTokenFor-metoden för att hämta en token som ska bäddas in i din MSIL.

När du har skapat Byte matriser för din lokala variabelsignatur, undantag och kodtext kan du använda SetCodemetoderna , SetExceptionsoch SetLocalSignature för att infoga dem i det DynamicMethod som är associerat med objektet DynamicILInfo .

När du genererar egna metadata och MSIL måste du känna till CLI-dokumentationen (Common Language Infrastructure), särskilt "Partition II: Metadata Definition and Semantics" och "Partition III: CIL Instruction Set". Mer information finns i ECMA 335 Common Language Infrastructure (CLI).

Note

Använd DynamicILInfo inte för att generera kod som skapar ett ombud till en annan dynamisk metod genom att anropa ombudskonstruktorn direkt. Använd CreateDelegate i stället metoden för att skapa ombudet. Ett ombud som skapas med ombudskonstruktorn har ingen referens till den dynamiska målmetoden. Den dynamiska metoden kan frigöras av skräpinsamling medan ombudet fortfarande används.

Egenskaper

Name Description
DynamicMethod

Hämtar den dynamiska metod vars brödtext genereras av den aktuella instansen.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetTokenFor(Byte[])

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar signaturen för den associerade dynamiska metoden.

GetTokenFor(DynamicMethod)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar en dynamisk metod som ska anropas från den associerade metoden.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar ett fält som ska nås från den associerade dynamiska metoden. Fältet är på den angivna generiska typen.

GetTokenFor(RuntimeFieldHandle)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar ett fält som ska nås från den associerade dynamiska metoden.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar en metod för en allmän typ.

GetTokenFor(RuntimeMethodHandle)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar en metod som ska nås från den associerade dynamiska metoden.

GetTokenFor(RuntimeTypeHandle)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar en typ som ska användas i den associerade dynamiska metoden.

GetTokenFor(String)

Hämtar en token som är giltig i omfånget för den aktuella DynamicILInfo, som representerar en strängliteral som ska användas i den associerade dynamiska metoden.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
SetCode(Byte[], Int32)

Anger kodtexten för den associerade dynamiska metoden.

SetCode(Byte*, Int32, Int32)

Anger kodtexten för den associerade dynamiska metoden.

SetExceptions(Byte[])

Anger undantagsmetadata för den associerade dynamiska metoden.

SetExceptions(Byte*, Int32)

Anger undantagsmetadata för den associerade dynamiska metoden.

SetLocalSignature(Byte[])

Anger den lokala variabelsignaturen som beskriver layouten för lokala variabler för den associerade dynamiska metoden.

SetLocalSignature(Byte*, Int32)

Anger den lokala variabelsignaturen som beskriver layouten för lokala variabler för den associerade dynamiska metoden.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för