Reflektion (C#)

Reflektion bietet Objekte (des Typs 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 Methode GetType(), die von allen Typen der Basisklasse Object geerbt wird, zum Abrufen von Typinformationen einer Variable:

Hinweis

Stellen Sie sicher, dass Sie using System; und using System.Reflection; am Anfang Ihrer .cs-Datei hinzufügen.

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

Die Ausgabe ist: System.Int32.

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

// Using Reflection to get information of an Assembly:
Assembly info = typeof(int).Assembly;
Console.WriteLine(info);

Die Ausgabe ist: System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e.

Hinweis

Die C#-Schlüsselwörter protected und internal haben in Zwischensprache (Intermediate Language, IL) keine Bedeutung und werden nicht in Reflexions-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:

Weitere Informationen