ジェネリックとリフレクション (C# プログラミング ガイド)

更新 : 2007 年 11 月

共通言語ランタイム (CLR) は、実行時にジェネリック型情報にアクセスできるため、非ジェネリック型の場合と同じように、リフレクションを使用してジェネリック型の情報を取得できます。詳細については、「ランタイムのジェネリック (C# プログラミング ガイド)」を参照してください。

.NET Framework 2.0 では、ジェネリック型のランタイム情報を有効にするために Type クラスに新しいメンバが追加されています。新しいメソッドとプロパティの使い方の詳細については、これらのクラスに関するドキュメントを参照してください。System.Reflection.Emit 名前空間にも、ジェネリックをサポートする新しいメンバが追加されています。方法 : リフレクション出力を使用してジェネリック型を定義する を参照してください。

ジェネリック リフレクションで使用する用語に関する一定の条件の一覧については、IsGenericType プロパティの解説を参照してください。

System.Type メンバ名

説明

IsGenericType

型がジェネリックの場合、true を返します。

GetGenericArguments

構築された型に対して指定された型引数、またはジェネリック型定義の型パラメータを表す Type オブジェクトの配列を返します。

GetGenericTypeDefinition

現在の構築された型の基になっているジェネリック型定義を返します。

GetGenericParameterConstraints

現在のジェネリック型パラメータの制約を表す Type オブジェクトの配列を返します。

ContainsGenericParameters

型、またはその型を囲む型またはメソッドのいずれかに、特定の型が指定されていない型パラメータが含まれている場合、true を返します。

GenericParameterAttributes

現在のジェネリック型パラメータの特別な制約を表す GenericParameterAttributes フラグの組み合わせを取得します。

GenericParameterPosition

型パラメータを表す Type オブジェクトの場合、型パラメータを宣言したジェネリック型定義またはジェネリック メソッド定義の型パラメータ リストで型パラメータの位置を取得します。

IsGenericParameter

現在の Type が、ジェネリック型定義またはジェネリック メソッド定義の型パラメータを表しているかどうかを示す値を取得します。

IsGenericTypeDefinition

現在の Type が、他のジェネリック型を構築できるジェネリック型定義を表しているかどうかを示す値を取得します。型がジェネリック型定義を表している場合、true を返します。

DeclaringMethod

現在のジェネリック型パラメータを定義したジェネリック メソッドを返します。型パラメータがジェネリック メソッドによって定義されていない場合は null を返します。

MakeGenericType

現在のジェネリック型定義の型パラメータを型の配列要素に置き換え、その結果構築された型を表す Type オブジェクトを返します。

さらに、ジェネリック メソッドのランタイム情報を有効にする新しいメンバが MethodInfo クラスに追加されています。ジェネリック メソッドのリフレクションで使用する用語に関する一定の条件の一覧については、IsGenericMethod プロパティの解説を参照してください。

System.Reflection.MemberInfo メンバ名

説明

IsGenericMethod

メソッドがジェネリックの場合、true を返します。

GetGenericArguments

構築されたジェネリック メソッドの型引数、またはジェネリック メソッド定義の型パラメータを表す Type オブジェクトの配列を返します。

GetGenericMethodDefinition

現在の構築されたメソッドの基になっているジェネリック メソッド定義を返します。

ContainsGenericParameters

メソッド、またはそれを囲む型のいずれかに、特定の型が指定されていない型パラメータが含まれている場合、true を返します。

IsGenericMethodDefinition

現在の MethodInfo がジェネリック メソッド定義を表している場合、true を返します。

MakeGenericMethod

現在のジェネリック メソッド定義の型パラメータを型の配列要素に置き換え、その結果構築されるメソッドを表す MethodInfo オブジェクトを返します。

参照

概念

C# プログラミング ガイド

リフレクションとジェネリックの概要

参照

ジェネリック (C# プログラミング ガイド)

その他の技術情報

.NET Framework におけるジェネリック