Ausgeben von dynamischen Methoden und Assemblys
Aktualisiert: November 2007
In diesem Abschnitt wird ein Satz verwalteter Typen im System.Reflection.Emit-Namespace beschrieben, mit denen ein Compiler oder ein Tool zur Laufzeit Metadaten und MSIL (Microsoft Intermediate Language) ausgeben und optional eine PE (Portable Executable)-Datei auf dem Datenträger generieren kann. Skriptmodule und Compiler sind die wichtigsten Benutzer dieses Namespace. Die vom System.Reflection.Emit-Namespace bereitgestellten Funktionen werden in diesem Abschnitt als Reflektionsausgabe bezeichnet.
Die Reflektionsausgabe stellt die folgenden Funktionen bereit:
Sie können zur Laufzeit mithilfe der DynamicMethod-Klasse einfache globale Methoden definieren und anhand von Delegaten ausführen.
Sie können Assemblys zur Laufzeit definieren und anschließend ausführen bzw. auf dem Datenträger speichern.
Sie können Module zur Laufzeit in neuen Assemblys definieren und anschließend ausführen bzw. auf dem Datenträger speichern.
Sie können zur Laufzeit Typen in Modulen definieren, Instanzen dieser Typen erstellen und ihre Methoden aufrufen.
Sie können symbolische Informationen für definierte Module angeben, die von Tools wie Debuggern und Codeprofilern verwendet werden können.
Neben den verwalteten Typen im System.Reflection.Emit-Namespace gibt es nicht verwaltete Metadatenschnittstellen, die in der Metadatenschnittstellen-Referenzdokumentation beschrieben werden. Die verwaltete Reflektionsausgabe bietet eine bessere semantische Fehlerprüfung und einen höheren Abstraktionsgrad für Metadaten als nicht verwaltete Metadatenschnittstellen.
In der Dokumentation der Common Language Infrastructure (CLI), insbesondere in den Themen "Partition II: Metadata Definition and Semantics" und "Partition III: CIL Instruction Set" (nur auf Englisch verfügbar) finden Sie weitere hilfreiche Informationen über die Verwendung von Metadaten und MSIL. Die Dokumentation ist online auf MSDN und auf der Ecma-Website verfügbar.
In diesem Abschnitt
Abstraktionen für die Reflektionsausgabe
Hier werden die Reflektionsausgabeklassen aufgeführt und beschrieben, mit denen Assemblys und Typen, Methoden und Methodenparameter, Ereignisse, Konstruktoren, Eigenschaften etc. definiert werden können.Szenarien für die Reflektionsausgabe mit dynamischen Methoden
Hier wird die Definition und Verwendung einfacher dynamischer Methoden beschrieben.Szenarien für die Reflektionsausgabe mit dynamischen Assemblies
Hier wird das wichtigste Szenario der Reflektionsausgabe beschrieben, bei dem ein in einer dynamischen Assembly definiertes dynamisches Modul ausgegeben wird.Anwendungsszenarien für die Reflektionsausgabe
Hier werden die von der Reflektionsausgabe unterstützten Anwendungsszenarien beschrieben, einschließlich der Ausführung eines Skriptes in einem Webbrowser bzw. in einer ASP.NET-Seite und der Kompilierung eines regulären Ausdrucks.Sicherheitsaspekte bei der Reflektionsausgabe
Beschreibt Sicherheitsfragen im Zusammenhang mit dem Erstellen dynamischer Assemblys mithilfe der Reflektionsausgabe.Verwenden der Reflektionsausgabe
Hier werden grundlegende Aufgaben beschrieben, die mithilfe der Reflektionsausgabe ausgeführt werden können. Darüber hinaus stehen Ihnen Gewusst-wie-Themen zum Generieren einfacher dynamischer Methoden und Ausgeben generischer Typen und Methoden zur Verfügung.Weitere Informationen zur Reflektionsausgabe
Beschreibt weitere Dokumentationen zur Reflektionsausgabe.
Referenz
OpCodes
Hier werden die MSIL-Codeanweisungen zum Erstellen von Methodentexten in Form eines Katalogs aufgeführt.System.Reflection.Emit
Hier werden verwaltete Klassen aufgeführt, mit denen dynamische Methoden, Assemblys und Typen ausgegeben werden.Type
Hier wird die Type-Klasse beschrieben, die Typen in verwalteter Reflektion und Reflektionsausgabe darstellt. Diese Klasse ist das wichtigste Element bei der Verwendung dieser Technologien.System.Reflection
Hier werden verwaltete Klassen aufgeführt, mit denen Metadaten und verwalteter Code durchsucht werden können.
Verwandte Abschnitte
Reflektion
Hier wird das Durchsuchen von Metadaten und verwaltetem Code erläutert.Assemblys in der Common Language Runtime (CLR)
Bietet eine Übersicht über Assemblys in .NET Framework.