リフレクション (Visual Basic)

リフレクションは、アセンブリ、モジュール、および型を記述する (Type 型の) オブジェクトを提供します。 リフレクションを使用すると、動的に型のインスタンスを作成したり、作成したインスタンスを既存のオブジェクトにバインドしたり、さらに既存のオブジェクトから型を取得してそのオブジェクトのメソッドを呼び出したり、フィールドやプロパティにアクセスしたりできます。 コードで属性を使用している場合は、リフレクションを使用してそれらにアクセスできます。 詳細については、「属性」を参照してください。

次の例は、GetType メソッドを使用して変数の型を取得する簡単なリフレクションを示しています。このメソッドは、Object 基底クラスからすべての型に継承される静的メソッドです。

' 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 でクラスを使います。

  • 遅延バインディングを実行するために、実行時に作成された型でメソッドにアクセスする。 「型の動的な読み込みおよび使用」を参照してください。

詳細情報

関連項目