Émission d'assemblys et de méthodes dynamiques
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 fonctions 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 assemblys au moment de l'exécution, les exécuter, puis les décharger et autoriser le garbage collection pour libérer leurs ressources.
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
Abstractions d'émission de réflexion
Répertorie et décrit les classes Émission de réflexion que vous pouvez utiliser pour définir des assemblys et des types, des méthodes et des paramètres de méthode, des événements, des constructeurs, des propriétés, etc.Assemblys pouvant être collectés pour la génération de types dynamic
Décrit la création et l'utilisation d'assemblys dynamiques qui peuvent être déchargés et libérés par le garbage collection lorsqu'aucun des types qu'ils contiennent n'est accessible par le code d'exécution.Scénarios de méthodes dynamiques avec Émission de réflexion
Décrit la définition et l'utilisation de méthodes dynamiques allégées.Scénarios d'assemblys dynamiques avec émission de réflexion
Décrit le scénario principal d'émission de réflexion consistant à émettre un module dynamique défini dans un assembly dynamique.Scénarios d'applications d'émission de réflexion
Décrit les scénarios d'application pris en charge par l'émission de réflexion, notamment l'exécution d'un script dans un navigateur Web, l'exécution d'un script dans une page ASP.NET et la compilation d'une expression régulière.Problèmes de sécurité dans l'émission de réflexion
Décrit les problèmes de sécurité relatifs à la création d'assemblys dynamiques liés à l'utilisation de Émission de réflexion.Utilisation de Émission de réflexion
Décrit les tâches fondamentales que vous pouvez exécuter à l'aide de l'émission de réflexion, avec des rubriques "Comment" relatives à la génération de méthodes dynamiques simplifiées et à l'émission de types et de méthodes génériques.Informations supplémentaires sur l'émission de réflexion
Décrit d'autres sources de documentation relatives à Émission de réflexion.
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é.
Sections connexes
Réflexion
Explique comment explorer des métadonnées et le code managé.Assemblys dans le Common Language Runtime
Offre une vue d'ensemble des assemblys dans le .NET Framework.