Reflection
Eintrag zuletzt aktualisiert am: 05.10.2011
Die Gewinnung von Metainformationen aus einer Komponente selbst wird im Allgemeinen als Reflexion (engl. Reflection) bezeichnet [Griffel:
Componentware, Siete 471]. Reflection ist die Möglichkeit, per Programmcode auf die Meta-Daten einer
Softwarekomponente zuzugreifen.
Java-Komponenten sind selbstbeschreibend. In dem Bytecode einer
Java-Class-Datei sind neben dem Programmcode auch Metainformationen über die in der Datei enthaltenen Klasse, deren Schnittstellen und Mitglieder enthalten. Die sogennante
Java-Reflection ist im Namensraum java.lang.reflect realisiert. So können Klassen und
Objekte zur Laufzeit analysiert werden.
Auch
.NET-Komponenten sind automatisch selbstbeschreibend. Ebenso wie in
Java erfolgt die Beschreibung nicht in
IDL, sondern in einem propietären Format. Der Zugriff über die Metainformationen erfolgt ebenso wie bei
Java über Reflection. Die
CLI-Reflection ist im Namespace
System.Reflection der
CLI-Klassenbibliothek realisiert und unterscheidet sich nicht im grundsätzlichen Vorgehen, jedoch hinsichtlich der Programmierschnittstelle von der
Java-Reflection.
Reflection ist die verbesserte Variante dessen, was in COM mit Hilfe der TypLib-Informationskomponente (TLBINF32.
DLL) möglich war.
Auch in der
Windows Runtime (
WinRT) wird Reflection auf Basis der
Metadaten (winmd) unterstützt.