リフレクションを使用した C# での動的クラス アクセス
C# 開発者は、文字列表現に基づいた動的クラス アクセスを必要とするシナリオによく遭遇します。 この記事では、リフレクションを利用して文字列からクラス参照を取得する方法を説明します。
クラス名を表す文字列 (たとえば、「MyClass」) があり、そのクラス内のメソッドを呼び出す必要があると想像してください。リフレクションが解決策を提供します。
コア機能は Type.GetType
メソッドに依存します。 以下に例を示します:
<code class="language-csharp">using System; using System.Reflection; public class Example { public static void Main(string[] args) { Type type = Type.GetType("MyClass"); // Get the Type object MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static); // Get the method method.Invoke(null, null); // Invoke the method } } public class MyClass { public static void MyMethod() { Console.WriteLine("MyMethod called!"); } }</code>
このコードは、Type.GetType
を使用して文字列から Type
オブジェクトを取得します。 GetMethod
は、指定された静的メソッドを取得し、Invoke
がそれを実行します。
この例ではパブリック静的メソッドを使用していることに注意してください。 BindingFlags
を調整すると、他のメソッド タイプ (プライベート インスタンス メソッドの BindingFlags.Instance | BindingFlags.NonPublic
など) にアクセスできるようになります。
Type.GetType
およびその他のリフレクション メソッドを理解すると、C# クラスとの動的な対話が可能になり、アプリケーションに大幅な柔軟性が提供されます。
以上がリフレクションを使用して文字列から C# クラス参照を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。