Reflektion (C#)

Reflektion bietet Objekte (vom Typ Type), die Assemblys, Module und Typen beschreiben. Mithilfe von Reflektion können Sie dynamisch eine Instanz eines Typs erzeugen, den Typ an ein vorhandenes Objekt binden und Typinformationen von vorhandenen Objekten abfragen. Ebenso wird erläutert wie die Methoden vorhandener Objekte aufgerufen und auf ihre Felder und Eigenschaften zugegriffen werden kann. Wenn Sie Attribute in Ihrem Code verwenden, können Sie mit Reflektion auf diese zugreifen. Weitere Informationen finden Sie unter Attribute.

Hier sehen Sie ein einfaches Beispiel für Reflektion mit der statischen Methode GetType, die von allen Typen der Basisklasse Object geerbt wird, zum Abrufen von Typinformationen einer Variable:

// Using GetType to obtain type information:  
int i = 42;  
System.Type type = i.GetType();  
System.Console.WriteLine(type);  

Ausgabe:

System.Int32

Im folgenden Beispiel wird Reflektion verwendet, um den vollständigen Namen der geladenen Assembly abzurufen.

// Using Reflection to get information from an Assembly:  
System.Reflection.Assembly info = typeof(System.Int32).Assembly;  
System.Console.WriteLine(info);  

Ausgabe:

mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Hinweis

Die C#-Schlüsselwörter protected und internal haben in IL keine Bedeutung und werden nicht in Reflektions-APIs verwendet. Die entsprechenden Begriffe in IL sind Family und Assembly. Verwenden Sie zum Identifizieren einer internal-Methode mithilfe von Reflektion die Eigenschaft IsAssembly. Verwenden Sie IsFamilyOrAssembly zum Identifizieren einer Methode protected internal.

Übersicht über Reflektion

Reflektion ist in folgenden Situationen nützlich:

Weitere Informationen finden Sie unter:

Siehe auch

C#-Programmierhandbuch
Assemblys in der Common Language Runtime (CLR)