Partager via


Envoyer des assemblys et des méthodes dynamiques

Cette section décrit un ensemble de types managés dans l’espace System.Reflection.Emit de noms qui permettent à un compilateur ou à un outil d’émettre des métadonnées et un langage intermédiaire commun (CIL) au moment de l’exécution et de générer éventuellement un fichier exécutable portable (PE) sur le disque. Les moteurs de script et les compilateurs sont les principaux utilisateurs de cet espace de noms. Dans cette section, la fonctionnalité fournie par l'espace de noms System.Reflection.Emit est appelée émission de réflexion.

L'émission de réflexion offre les possibilités suivantes :

  • Définissez des méthodes globales légères au moment de l’exécution, à l’aide de la DynamicMethod classe et exécutez-les à l’aide de délégués.
  • Définissez des assemblys au moment de l’exécution, puis exécutez-les et/ou enregistrez-les sur le disque.
  • Définissez des assemblies au moment de l’exécution, exécutez-les, puis déchargez-les et autorisez le ramasse-miettes à récupérer leurs ressources.
  • Définissez des modules dans de nouveaux assemblys au moment de l’exécution, puis exécutez-les et/ou enregistrez-les sur le disque.
  • Définissez des types dans les modules au moment de l’exécution, créez des instances de ces types et appelez leurs méthodes.
  • Définissez des informations symboliques pour les modules définis qui peuvent être utilisés par des outils tels que des débogueurs et des profileurs de code.

Outre les types managés dans l’espace System.Reflection.Emit de noms, il existe des interfaces de métadonnées non managées qui sont décrites dans les interfaces de métadonnées (.NET Framework) et les interfaces de métadonnées (.NET). L’émission de réflexion gérée fournit une vérification d’erreur sémantique plus forte et un niveau supérieur d’abstraction des métadonnées que les interfaces de métadonnées non gérées.

Une autre ressource utile pour utiliser les métadonnées et CIL est la documentation de l’infrastructure de langage commun (CLI), en particulier « Partition II : Définition et sémantique des métadonnées » et « Jeu d’instructions CIL : Partition III ». La documentation est disponible en ligne sur le site web Ecma.

Reference

OpCodes
Catalogue les codes d’instruction CIL que vous pouvez utiliser pour générer des corps de méthode.

System.Reflection.Emit
Contient des classes managées utilisées pour émettre des méthodes dynamiques, des assemblys et des types.

Type
Décrit la classe Type, qui représente des types dans la réflexion managée et dans l'émission de réflexion, et qui est essentielle dans l'utilisation de ces technologies.

System.Reflection
Contient des classes managées utilisées pour explorer les métadonnées et le code managé.