É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
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.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 l'é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 comportant des instructions pour générer des méthodes dynamiques allégées et émettre des types et 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é.
Rubriques 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.