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í jazyka MSIL (Microsoft Intermediate Language) a metadat pro dynamickou metodu, včetně metod pro vytváření tokenů a pro vložení kódu, zpracování výjimek a objektů blob podpisů místních proměnných.
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 JAZYKa MSIL místo použití ILGenerator.
Pokud chcete vytvořit instance jiných typů, metod volání atd., jazyk MSIL, který generujete, musí obsahovat tokeny pro tyto entity. Třída DynamicILInfo poskytuje několik přetížení GetTokenFor metody, která vrací tokeny platné v oboru aktuální DynamicILInfo. Pokud například potřebujete volat přetížení Console.WriteLine metody, můžete získat RuntimeMethodHandle pro toto přetížení a předat ho GetTokenFor metodě, aby získala token pro vložení do jazyka MSIL.
Jakmile vytvoříte Byte pole pro podpis místní proměnné, výjimky a tělo kódu, můžete je pomocí SetCodemetod , SetExceptionsa SetLocalSignature vložit do objektu přidruženého k vašemu DynamicILInfo objektuDynamicMethod.
Generování vlastních metadat a jazyka MSIL vyžaduje znalost dokumentace k rozhraní příkazového řádku (Common Language Infrastructure), zejména Oddíl II: Definice metadat a sémantika a Oddíl III: Sada instrukcí CIL. Další informace najdete v tématu ECMA 335 Common Language Infrastructure (CLI).
Poznámka
Nepoužívejte DynamicILInfo k vygenerování kódu, který vytvoří delegáta na jinou dynamickou metodu zavolá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 se delegát stále používá.
Vlastnosti
DynamicMethod |
Získá dynamickou metodu, jejíž tělo je generován aktuální instance. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetTokenFor(Byte[]) |
Získá token platný v oboru aktuální DynamicILInfo, představující podpis pro přidruženou dynamickou metodu. |
GetTokenFor(DynamicMethod) |
Získá token platný v oboru aktuální DynamicILInfo, představující dynamickou metodu, která má být volána z přidružené metody. |
GetTokenFor(RuntimeFieldHandle) |
Získá token platný v oboru aktuální DynamicILInfo, představující pole pro přístup z přidružené dynamické metody. |
GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle) |
Získá token platný v oboru aktuální DynamicILInfo, představující pole pro přístup z přidružené dynamické metody; pole je na zadaném obecném typu. |
GetTokenFor(RuntimeMethodHandle) |
Získá token platný v oboru aktuální DynamicILInfo, představující metodu pro přístup z přidružené dynamické metody. |
GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle) |
Získá token platný v oboru aktuální DynamicILInfo, představující metodu na obecný typ. |
GetTokenFor(RuntimeTypeHandle) |
Získá token platný v oboru aktuální DynamicILInfo, představující typ, který má být použit v přidružené dynamické metodě. |
GetTokenFor(String) |
Získá token platný v oboru aktuální DynamicILInfo, představující řetězcový literál, který má být použit v přidružené dynamické metodě. |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
SetCode(Byte*, Int32, Int32) |
Nastaví tělo kódu přidružené dynamické metody. |
SetCode(Byte[], Int32) |
Nastaví tělo kódu přidružené dynamické metody. |
SetExceptions(Byte*, Int32) |
Nastaví metadata výjimky pro přidruženou dynamickou metodu. |
SetExceptions(Byte[]) |
Nastaví metadata výjimky 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. |
SetLocalSignature(Byte[]) |
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) |