ホームページ >バックエンド開発 >C++ >リフレクションを使用して C# でクラス参照を取得するにはどうすればよいですか?

リフレクションを使用して C# でクラス参照を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-14 10:12:43704ブラウズ

How Can I Retrieve a Class Reference in C# Using Reflection?

リフレクションを使用して名前で C# クラスにアクセスする

C# リフレクションは、文字列名を使用してクラスにアクセスするメカニズムを提供します。これは、直接参照を必要とせずにクラスと動的に対話するために重要です。 このプロセスの核心は、その後そのメソッドを呼び出すためのクラス参照を取得することにあります。

Type.GetType() メソッドが鍵です。文字列 (クラス名) を受け取り、そのクラスを表す Type オブジェクトを返します。 たとえば、「FooClass」という名前のクラスへの参照を取得するには:

<code class="language-csharp">Type t = Type.GetType("FooClass");</code>

Type オブジェクトを使用すると、GetMethod()Invoke() を使用して静的メソッドを呼び出すことができます。 実例:

<code class="language-csharp">MethodInfo method = t.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);
method.Invoke(null, null);</code>

BindingFlags.Static はメソッドが静的であることを示します。 BindingFlags.Public は、パブリックにアクセスできることを指定します。

このアプローチは、クラスが現在のアセンブリ内に存在するという前提で機能します。 外部アセンブリやさまざまなソースからクラスにアクセスするなど、より複雑なシナリオでは、代替ソリューションで詳しく説明されているように、より洗練されたアプローチが必要です。

以上がリフレクションを使用して C# でクラス参照を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。