リフレクションとは、アセンブリ、モジュール、および型をカプセル化するオブジェクトを提供することを指します。リフレクションを通じて、型のインスタンスを動的に作成し、型を既存のオブジェクトにバインドできます。これは、アセンブリ内のオブジェクトのチェックとインスタンス化によく使用されます。型と新しい型の構築ランタイムなど
この記事の主な内容は、C# におけるリフレクションとは何かを詳しく紹介することであり、あるリファレンス関数が含まれているので、皆さんの参考になれば幸いです。
##[おすすめコース:
C# チュートリアル]とはリフレクション
リフレクションとは、アセンブリ、モジュール、および型をカプセル化するオブジェクト (型型) を提供することを指します。リフレクションを使用すると、型のインスタンスを動的に作成したり、型を既存のオブジェクトにバインドしたり、既存のオブジェクトから型を取得してそのメソッドを呼び出したり、そのフィールドやプロパティにアクセスしたりできます。コードで属性が使用されている場合は、リフレクションを使用してアクセスできます。
リフレクションの使用シナリオプログラム メタデータへのアクセスを必要とする機能。 アセンブリ内の型を確認してインスタンス化します。
実行時に新しい型を構築します。
System.Reflection.Emit のクラスを使用します。
遅延バインディングを実行し、実行時に作成された型のメソッドにアクセスする
リフレクションを使用して型を取得する方法型情報を取得するには 2 つの方法があります1 つはインスタンス オブジェクトを取得する方法で、もう 1 つは Type.GetType メソッドと Assembly.GetType メソッドを使用してインスタンス オブジェクトを取得する方法です。
インスタンス オブジェクトを取得するこのメソッドでは、このインスタンス オブジェクトはオブジェクトへの参照またはインターフェイス参照として取得される可能性がありますが、その正確な型は不明です。さらに詳しく知りたい場合は、System.Object## を呼び出してください。 # 上記で宣言したメソッド GetType は、インスタンス オブジェクトの型オブジェクトを取得するために使用されます。たとえば、あるメソッドでは、渡されたパラメーターが特定のインターフェイスを実装しているかどうかを判断する必要があります。実装されている場合は、そのインターフェイスのメソッドを呼び出します:
… public void Process( object processObj ){ Type t = processsObj.GetType(); if( t.GetInterface(“ITest”) !=null ) …}…
Type.GetType メソッドと Assembly.GetType メソッド
Type t = Type.GetType(“System.String”);
クラスを検索するには、そのクラスが配置されているアセンブリを指定するか、取得した Assembly インスタンスで GetType を呼び出す必要があることに注意してください。このアセンブリの型は、型名のみを書き込めます。別の例外は、mscorlib.dll です。このアセンブリで宣言された型は、アセンブリ名を省略することもできます (.Net アセンブリがコンパイルされるとき、アセンブリ名は次のように引用されます) mscorlib.dll (コンパイル中に参照しないように明示的に指定されていない限り)、例:
System.String は、上記の mscorlib.dll
で宣言されています。
は正しいです。 System.Data.DataTable
は System.Data.dll
で宣言され、その後
null 参照のみを取得できます。 So
Type t = Type.GetType("System.Data.DataTable,System.Data,Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
要約: 上記がこの記事の全内容です。皆様のお役に立てれば幸いです。
以上がC#のリフレクションとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。