リフレクションは、アセンブリ、モジュール、および型を記述する ( Type型の) オブジェクトを提供します。 リフレクションを使用すると、型のインスタンスを動的に作成したり、型を既存のオブジェクトにバインドしたり、既存のオブジェクトから型を取得したり、メソッドを呼び出したり、そのフィールドとプロパティにアクセスしたりできます。 コードで属性を使用している場合は、リフレクションを使用してそれらにアクセスできます。 詳細については、「属性の」を参照してください。
変数の型を取得するために、Object
基底クラスからすべての型によって継承される静的メソッド GetType
を使用したリフレクションの簡単な例を次に示します。
' Using GetType to obtain type information:
Dim i As Integer = 42
Dim type As System.Type = i.GetType()
System.Console.WriteLine(type)
出力は次のようになります。
System.Int32
次の例では、リフレクションを使用して、読み込まれたアセンブリの完全な名前を取得します。
' Using Reflection to get information from an Assembly:
Dim info As System.Reflection.Assembly = GetType(System.Int32).Assembly
System.Console.WriteLine(info)
出力は次のようになります。
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
リフレクションの概要
リフレクションは、次の状況で役立ちます。
プログラムのメタデータ内の属性にアクセスする必要がある場合。 詳細については、「属性に格納されている情報の取得」を参照してください。
アセンブリ内の型を調べてインスタンス化する場合。
実行時に新しい型を構築する場合。 System.Reflection.Emitでクラスを使用します。
遅延バインディングを実行する場合は、実行時に作成された型のメソッドにアクセスします。 型の動的な読み込みと使用に関するトピックを参照してください。
関連セクション
詳細については、以下を参照してください。
こちらも参照ください
.NET