先週、ここで前だけC#の反射技術ではなく、使用することを知っているので、考慮に入れたプロジェクトは、動的な効果は、達成するために、彼は最終的にオンラインに合格するための良い方法を考えることができないときに、クラスのメンバーの動的特性を取得しますクエリが良い解決策だった===> C#を達成するために、反射技術が付属して使用することです。
基本:
- これは、ローダおよびランタイム、およびローダアセンブリへの動的アクセスで反射され、アセンブリの情報を取得してもよい、モジュールタイプを含む、モジュール(Module1)を含む、アセンブリ内の部材を含むタイプ、我々はできる反射性を提供しますアセンブリ、名前空間、クラスのパスを表示します。私たちは、操作することができ、クラスはメソッド、他のクラスのうちの、アセンブリをインスタンス化することができ、我々は一般的にアセンブリとして使用するのと同様。
- Acticatorクラス:こちらをクリック!
- MSDN詳細な反射を説明:こちらをクリック!
反射の使用:
-
使用 アセンブリを 定義し、ローディングアセンブリ、アセンブリマニフェストに記載されているロードモジュール、およびこのアセンブリから検索タイプと、そのタイプのインスタンスを作成します。
-
使用 モジュールは、 モジュールのモジュールを含むアセンブリ、など:以下の情報を見つけます。 また、すべてのグローバルメソッドまたはモジュールで定義された他の特定の非グローバルメソッドを取得することができます。
-
使用 ConstructorInfoは 、以下の情報を見つける:(例えば、名前、パラメータ、コンストラクタのアクセス修飾子 、パブリックまたは プライベート)と(のような実装の詳細 抽象的、または その上および仮想)。 使用する タイプ の GetConstructors または GetConstructorの 特定のコンストラクタを呼び出すためのメソッドを。
-
使用 METHODINFOは 、以下の情報を見つける:メソッドの名前、戻り値の型、パラメータ、(例えば、アクセス修飾子 、公開または (のようなプライベート)と実装の詳細 抽象的、あるいは その上の仮想)と。 使用する タイプ の GetMethods または GetMethodの 特定のメソッドを呼び出すための方法を。
-
使用 のFieldInfoは、 次の情報を見つける:フィールドの名前、アクセス修飾子(例えば、 パブリックまたは プライベート)と実装の詳細(例えば、静的)などを、フィールドの値を取得または設定します。
-
使用 EventInfoは、 次の情報を見つける:イベント名、イベント・ハンドラのデータ型、カスタム属性、タイプと反射型を宣言、など;およびイベントハンドラを追加または削除します。
-
使用 PropertyInfoは、 次の情報を見つける:プロパティの名前、データ型、宣言された型、反射型または書き込みおよび読み取り専用の状態を、そしてプロパティ値を取得または設定します。
-
使用 ParameterInfoは、 以下の情報を見つける:パラメータの名前、データタイプ、出力パラメータは、入力パラメータまたはパラメータであり、位置メソッドシグネチャのパラメータ。
-
あなたが反射のみアプリケーションドメインのコンテキストで作業する場合、使用 CustomAttributeDataを カスタムプロパティについての情報を発見します。 使用することにより CustomAttributeDataを、あなたはそれらを調べることができ、インスタンスプロパティを作成する必要はありません。
完全なテスト項目:こちらをクリック!
免責事項:この記事はブロガーオリジナル記事です、再現した場合、ソースを明記してください。