DynamicILInfo Třída

Definice

Poskytuje podporu pro alternativní způsoby generování Microsoft zprostředkujícího jazyka (MSIL) a metadat pro dynamickou metodu, včetně metod pro vytváření tokenů a vložení kódu, zpracování výjimek a objektů blob místního podpisu proměnné.

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
Dědičnost
DynamicILInfo
Atributy

Poznámky

Třída DynamicILInfo umožňuje vývojářům psát vlastní generátory MSIL místo použití ILGenerator.

Chcete-li vytvořit instance jiných typů, metod volání atd., jazyk MSIL, který vygenerujete, musí obsahovat tokeny pro tyto entity. DynamicILInfo Třída poskytuje několik přetížení metod GetTokenFor, která vracejí tokeny platné v oboru aktuálního DynamicILInfo. Pokud například potřebujete zavolat přetížení metody Console.WriteLine, můžete získat RuntimeMethodHandle pro toto přetížení a předat ho metodě GetTokenFor k získání tokenu pro vložení do vašeho MSIL.

Jakmile vytvoříte Byte pole pro podpis místní proměnné, výjimky a tělo kódu, můžete použít metody SetCode, SetExceptions a SetLocalSignature k jejich vložení do DynamicMethod, které je přidruženo k vašemu objektu DynamicILInfo.

Generování vlastních metadat a rozhraní MSIL vyžaduje znalost dokumentace k common language infrastructure (CLI), zejména oddíl II: Definice metadat a sémantika a oddíl III: Instrukční sada CIL. Další informace najdete v tématu ECMA 335 Common Language Infrastructure (CLI).

Note

Nepoužívejte DynamicILInfo k vygenerování kódu, který vytvoří delegáta na jinou dynamickou metodu voláním konstruktoru delegáta přímo. Místo toho použijte metodu CreateDelegate k vytvoření delegáta. Delegát vytvořený pomocí konstruktoru delegáta nemá odkaz na cílovou dynamickou metodu. Dynamická metoda může být uvolněna uvolňováním paměti, zatímco delegát je stále používán.

Vlastnosti

Name Description
DynamicMethod

Získá dynamickou metodu, jejíž tělo je generováno aktuální instancí.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetTokenFor(Byte[])

Získá token, platný v oboru aktuálního DynamicILInfo, představující podpis pro přidruženou dynamickou metodu.

GetTokenFor(DynamicMethod)

Získá token, platný v oboru aktuálního DynamicILInfo, představující dynamickou metodu, která má být volána z přidružené metody.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Získá token, platný v oboru aktuálního DynamicILInfo, představující pole, které má být přístupné z přidružené dynamické metody; pole je na zadaném obecném typu.

GetTokenFor(RuntimeFieldHandle)

Získá token, platný v oboru aktuálního DynamicILInfo, představující pole pro přístup z přidružené dynamické metody.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Získá token, platný v oboru aktuálního DynamicILInfo, představující metodu pro obecný typ.

GetTokenFor(RuntimeMethodHandle)

Získá token, platný v oboru aktuálního DynamicILInfo, představující metodu pro přístup z přidružené dynamické metody.

GetTokenFor(RuntimeTypeHandle)

Získá token, platný v oboru aktuálního DynamicILInfo, představující typ, který se má použít v přidružené dynamické metodě.

GetTokenFor(String)

Získá token, platný v oboru aktuálního DynamicILInfo, představující řetězcový literál, který se má použít v přidružené dynamické metodě.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
SetCode(Byte[], Int32)

Nastaví tělo kódu přidružené dynamické metody.

SetCode(Byte*, Int32, Int32)

Nastaví tělo kódu přidružené dynamické metody.

SetExceptions(Byte[])

Nastaví metadata výjimek pro přidruženou dynamickou metodu.

SetExceptions(Byte*, Int32)

Nastaví metadata výjimek pro přidruženou dynamickou metodu.

SetLocalSignature(Byte[])

Nastaví podpis místní proměnné, který popisuje rozložení místních proměnných pro přidruženou dynamickou metodu.

SetLocalSignature(Byte*, Int32)

Nastaví podpis místní proměnné, který popisuje rozložení místních proměnných pro přidruženou dynamickou metodu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro