リフレクションを使用して名前で 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 サイトの他の関連記事を参照してください。