DynamicILInfo Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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) |