リフレクション
System.Reflection 名前空間のクラスを System.Type クラスと共に使用すると、読み込まれたアセンブリについての情報、およびそのアセンブリ内に定義されているクラス、インターフェイス、値型などの型を取得できます。また、リフレクションを使用すると、実行時に型インスタンスを作成したり、作成した型インスタンスを呼び出したり、アクセスできます。
このセクションの内容
- リフレクションの概要
リフレクションとその主な用途を説明します。
- 方法 : リフレクションのみのコンテキストにアセンブリを読み込む
リフレクションのみの読み込みのコンテキストについて説明します。アセンブリを読み込む方法、そのコンテキストをテストする方法、およびリフレクションのみのコンテキストでアセンブリに適用されている属性を調べる方法を紹介します。
- リフレクションのランタイム型
System.Reflection 名前空間の抽象クラスを継承し、その抽象クラスの実装の大部分を提供する、RuntimeType などの内部型について説明します。
- 型情報の表示
System.Type クラスについて説明します。System.Type をいくつかのリフレクション クラスと共に使用して、コンストラクタ、メソッド、フィールド、プロパティ、およびイベントについての情報を取得する方法を示すコード例を提供します。
- リフレクションとジェネリック型
ジェネリック型およびジェネリック メソッドの型パラメータと型引数がリフレクションでどのように処理されるかについて説明します。
- リフレクション クラスで使用されるデザイン パターン
メソッドの名前付けパターンを示す表を提供し、Module、Type、MemberInfo の各クラスなど、最も一般的に使用されるリフレクション クラスの使い方を説明します。
- リフレクションに関するセキュリティ上の考慮事項
型情報を探索し、型にアクセスするためにどの程度までリフレクションを使用できるかを決定する規則を説明します。
- 型の動的な読み込みおよび使用
遅延バインディングをサポートするリフレクション カスタム バインディング インターフェイスについて説明します。
- 既定のメンバへのアクセス
リフレクションを使用してクラスの既定のメンバにアクセスする方法を説明します。
- 既定の引数値へのアクセス
リフレクションを使用して既定値を持つ引数にアクセスする方法と、既定値の引数を持つメソッドを呼び出す方法を説明します。
- カスタム属性へのアクセス
リフレクションを使用して、属性の有無および属性値を照会する方法を説明します。
- 完全修飾型名の指定
Backus-Naur form (BNF) に基づく完全修飾型名の書式と、特殊文字、アセンブリ名、ポインタ、参照、および配列を指定するときに要求される構文を説明します。
- アンマネージ リフレクション API
アンマネージ リフレクションを使用してメタデータを調べる際の情報を検索する場所について説明します。
- 方法 : リフレクションを使用してデリゲートをフックする
メソッドのデリゲートを作成し、デリゲートをイベントにフックする方法について説明します。また、DynamicMethod を使用して実行時にイベント処理メソッドを作成する方法について説明します。
参照
- Type
ランタイム型システムで型を表し、リフレクションの中心機能を提供するクラス。
- System.Reflection
メソッドを表す MethodInfo クラスなど、コード エンティティの他の抽象化を含む名前空間象。
- System.Reflection.Emit
動的アセンブリや動的メソッドを生成するためのクラスを含む名前空間。
関連するセクション
- 動的メソッドおよびアセンブリの出力
動的アセンブリや動的メソッドを生成する方法について説明します。