Generische Typen und Reflektion (C#-Programmierhandbuch)

Da die Common Language Runtime (CLR) Zugriff auf generische Typinformationen zur Laufzeit verfügt, können Sie die Reflektion zum Abrufen von Informationen über generische Typen genauso wie für nicht generische Typen verwenden. Weitere Informationen finden Sie unter Generika zur Laufzeit.

In .NET Framework 2.0 wurden mehrere neue Member zur Type-Klasse hinzugefügt, um Laufzeitinformationen für generische Typen zu ermöglichen. Weitere Informationen zur Verwendung dieser Methoden und Eigenschaften finden Sie in der Dokumentation zu diesen Klassen. Der System.Reflection.Emit-Namespace enthält auch neue Member, die generische Typen unterstützen. Weitere Informationen finden Sie unter Vorgehensweise: Definieren eines generischen Typs mit Reflektionsausgabe.

Eine Liste der invarianten Bedingungen für Begriffe, für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie in den Hinweisen zur Eigenschaft IsGenericType.

System.Type-Membername Beschreibung
IsGenericType Gibt TRUE zurück, wenn ein Typ generisch ist
GetGenericArguments Gibt ein Array von Type-Objekten zurück, die die bereitgestellten Typargumente für einen konstruierten Typ oder die Typparameter einer generischen Typdefinition darstellen
GetGenericTypeDefinition Gibt die zugrunde liegende generische Typdefinition für den aktuellen konstruierten Typ zurück
GetGenericParameterConstraints Gibt ein Array von Type-Objekten zurück, die die Einschränkungen für den aktuellen generischen Typparameter darstellen.
ContainsGenericParameters Gibt TRUE zurück, wenn der Typ oder einer seiner einschließenden Typen oder Methoden Typparameter enthalten, für die keine bestimmten Typen angegeben wurden
GenericParameterAttributes Ruft eine Kombination von GenericParameterAttributes-Flags ab, die die speziellen Einschränkungen des aktuellen generischen Typparameters beschreiben
GenericParameterPosition Ruft für ein Type-Objekt, das einen Typparameter darstellt, die Position des Typparameters in der Typparameterliste des generischen Typs oder der generischen Methode, die den Typparameter deklariert
IsGenericParameter Ruft einen Wert ab, der angibt, ob der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstellt
IsGenericTypeDefinition Ruft einen Wert ab, der angibt, ob der aktuelle Type eine generische Typdefinition darstellt, aus der andere generische Typen konstruiert werden können. Gibt TRUE zurück, wenn der Typ die Definition eines generischen Typs darstellt
DeclaringMethod Gibt die generische Methode, die den aktuellen generischen Typparameter definiert, oder null zurück, wenn der Typparameter nicht von einer generischen Methode definiert wurde
MakeGenericType Ersetzt die Typparameter der aktuellen generischen Typdefinition durch die Elemente eines Arrays von Typen und gibt ein Type-Objekt zurück, das den resultierenden konstruierten Typ darstellt.

Zusätzlich wurden neue Member zur MethodInfo-Klasse hinzugefügt, um Laufzeitinformationen für generische Methoden zu ermöglichen. Eine Liste der invarianten Bedingungen für Begriffe, die für die Reflektion mit generischen Methoden verwendet werden, finden Sie unter den Hinweisen zur Eigenschaft IsGenericMethod.

System.Reflection.MemberInfo-Membername Beschreibung
IsGenericMethod Gibt TRUE zurück, wenn eine Methode generisch ist
GetGenericArguments Gibt ein Array von Type-Objekten zurück, die die Typargumente einer konstruierten generischen Methode oder die Typparameter einer generischen Methodendefinition darstellen
GetGenericMethodDefinition Gibt die zugrunde liegende generische Methodendefinition für die aktuelle konstruierte Methode zurück
ContainsGenericParameters Gibt TRUE zurück, wenn die Methode oder einer ihrer einschließenden Typen Typparameter enthält, für die keine bestimmten Typen angegeben wurden
IsGenericMethodDefinition Gibt TRUE zurück, wenn die aktuelle MethodInfo die Definition eines generischen Typs darstellt
MakeGenericMethod Ersetzt die Typparameter der aktuellen generischen Methodendefinition durch die Elemente eines Arrays von Typen und gibt ein MethodInfo-Objekt zurück, das die sich ergebende konstruierte Methode darstellt.

Siehe auch

C#-Programmierhandbuch
Generika
Reflektion und generische Typen
Generika