非静的メソッドを扱う場合、開発者は簡単にリフレクションを利用してクラスのインスタンスを作成し、そのメソッドを呼び出すことができます。ただし、メソッドが静的である場合、このアプローチには変更が必要です。
このシナリオでは、リフレクションを使用して、"mySolution.Macros" 名前空間内の静的クラスからすべての "Run" メソッドを呼び出すことを目的としています。
ここで重要なのは、静的メソッドの場合、MethodInfo.Invoke の最初の引数は無視できることを覚えておくことです。したがって、静的クラスを反復処理する場合は、単に tempClass.GetMethod("Run").Invoke(null, null); を呼び出すことができます。
静的メソッドのみを呼び出すようにするには、以下に示すように BindingFlags.Static を GetMethod 呼び出しに追加します。
tempClass.GetMethod("Run", BindingFlags.Public | BindingFlags.Static).Invoke(null, null);
このアプローチに従ってください。を使用すると、開発者は指定された名前空間内のクラスから静的メソッドを効果的に呼び出すことができ、メソッドの実行に対する柔軟性と制御が提供されます。
以上がC# でリフレクションを使用して静的メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。