Émission d'assemblys et de méthodes dynamiques

Mise à jour : novembre 2007

Cette section décrit un jeu de types managés dans l'espace de noms System.Reflection.Emit qui permettent à un compilateur ou à un outil d'émettre des métadonnées et du code MSIL (Microsoft Intermediate Language) au moment de l'exécution et de générer éventuellement un fichier exécutable portable (PE, Portable Executable) sur le disque. Cet espace de noms est principalement utilisé par les moteurs de script et les compilateurs. Dans cette section, on désigne par émission de réflexion la fonctionnalité fournie par l'espace de noms System.Reflection.Emit.

L'émission de réflexion fournit les fonctionnalités suivantes :

  • Définir des méthodes globales allégées au moment de l'exécution, à l'aide de la classe DynamicMethod, et les exécuter à l'aide de délégués.

  • Définir des assemblys au moment de l'exécution, puis les exécuter et/ou les enregistrer sur le disque.

  • Définir des modules dans de nouveaux assemblys au moment de l'exécution, puis les exécuter et/ou les enregistrer sur le disque.

  • Définir des types dans les modules au moment de l'exécution, créer des instances de ces types et appeler leurs méthodes.

  • Définir des informations symboliques pour des modules définis qui peuvent être utilisées par des outils tels que des débogueurs et des profileurs de code.

En plus des types managés dans l'espace de noms System.Reflection.Emit, certaines interfaces de métadonnées non managées sont décrites dans la documentation de référence de Interfaces de métadonnées. L'émission de réflexion managée offre une fonction de vérification des erreurs de sémantique plus puissante et un plus haut niveau d'abstraction des métadonnées que les interfaces de métadonnées non managées.

Pour utiliser les métadonnées et le langage MSIL, une autre ressource utile est la documentation du Common Language Infrastructure (CLI), notamment les sections « Partition II: Metadata Definition and Semantics » et « Partition III: CIL Instruction Set ». La documentation est accessible en ligne sur le site MSDN (en anglais) et sur le site Web d'Ecma (en anglais).

Dans cette section

Référence

  • OpCodes
    Répertorie les codes des instructions MSIL que vous pouvez utiliser pour générer le corps de méthodes.

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

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

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

Rubriques connexes