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

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