Partager via


DynamicILInfo Classe

Définition

Fournit la prise en charge d'autres façons de générer le code MSIL (Microsoft Intermediate Language) et les métadonnées d'une méthode dynamique, y compris les méthodes pour créer des jetons et pour insérer le code, la gestion des exceptions et les blobs de signature de variables locales.

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
Héritage
DynamicILInfo
Attributs

Remarques

La DynamicILInfo classe permet aux développeurs d’écrire leurs propres générateurs MSIL au lieu d’utiliser ILGenerator.

Pour créer des instances d’autres types, des méthodes d’appel, etc., le MSIL que vous générez doit inclure des jetons pour ces entités. La DynamicILInfo classe fournit plusieurs surcharges de la GetTokenFor méthode, qui retournent des jetons valides dans l’étendue du actuel DynamicILInfo. Par exemple, si vous devez appeler une surcharge de la Console.WriteLine méthode, vous pouvez obtenir un RuntimeMethodHandle pour cette surcharge et le passer à la GetTokenFor méthode pour obtenir un jeton à incorporer dans votre MSIL.

Une fois que vous avez créé Byte des tableaux pour votre signature de variable locale, les exceptions et le corps de code, vous pouvez utiliser les SetCodeméthodes , SetExceptionset SetLocalSignature pour les insérer dans le DynamicMethod associé à votre DynamicILInfo objet.

Pour générer vos propres métadonnées et MSIL, vous devez vous familiariser avec la documentation cli (Common Language Infrastructure), en particulier « Partition II : Définition et sémantique des métadonnées » et « Partition III : Jeu d’instructions CIL ». Pour plus d’informations, consultez ECMA 335 Common Language Infrastructure (CLI).

Notes

N’utilisez DynamicILInfo pas pour générer du code qui crée un délégué à une autre méthode dynamique en appelant directement le constructeur délégué. Utilisez plutôt la CreateDelegate méthode pour créer le délégué. Un délégué créé avec le constructeur délégué n’a pas de référence à la méthode dynamique cible. La méthode dynamique peut être récupérée par garbage collection pendant que le délégué est toujours en cours d’utilisation.

Propriétés

DynamicMethod

Obtient la méthode dynamique dont le corps est généré par l'instance actuelle.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetTokenFor(Byte[])

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant la signature de la méthode dynamique associée.

GetTokenFor(DynamicMethod)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant une méthode dynamique à appeler par la méthode associée.

GetTokenFor(RuntimeFieldHandle)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant un champ accessible à partir de la méthode dynamique associée.

GetTokenFor(RuntimeFieldHandle, RuntimeTypeHandle)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant un champ accessible à partir de la méthode dynamique associée ; le champ est du type générique spécifié.

GetTokenFor(RuntimeMethodHandle)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant une méthode à laquelle accéder à partir de la méthode dynamique associée.

GetTokenFor(RuntimeMethodHandle, RuntimeTypeHandle)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, qui représente une méthode sur un type générique.

GetTokenFor(RuntimeTypeHandle)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant un type à utiliser dans la méthode dynamique associée.

GetTokenFor(String)

Obtient un jeton, valide dans la portée du DynamicILInfo actuel, représentant un littéral de chaîne à utiliser dans la méthode dynamique associée.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
SetCode(Byte*, Int32, Int32)

Définit le corps du code de la méthode dynamique associée.

SetCode(Byte[], Int32)

Définit le corps du code de la méthode dynamique associée.

SetExceptions(Byte*, Int32)

Définit les métadonnées d'exception de la méthode dynamique associée.

SetExceptions(Byte[])

Définit les métadonnées d'exception de la méthode dynamique associée.

SetLocalSignature(Byte*, Int32)

Définit la signature des variables locales qui décrit la mise en forme des variables locales de la méthode dynamique associée.

SetLocalSignature(Byte[])

Définit la signature des variables locales qui décrit la mise en forme des variables locales de la méthode dynamique associée.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à