Verwenden Sie die C#-Reflexion, um eine Klassenreferenz aus einem String abzurufen
In C# erfordert das Erhalten einer Klassenreferenz aus einer Zeichenfolge die Verwendung eines Reflexionsmechanismus. So geht's:
Verwenden Sie die Type.GetType-Methode:
Type.GetType("FooClass")
: Rufen Sie die Typinstanz ab, die der angegebenen Zeichenfolge entspricht (z. B. „FooClass“). Invoke()
: Um eine statische Methode wie FooClass.MyMethod()
aufzurufen, können Sie die Methode Invoke()
verwenden, um das abgerufene Objekt MethodInfo
aufzurufen. Beispiel:
<code class="language-csharp">using System; using System.Reflection; class Program { static void Main() { // 获取Type实例 Type t = Type.GetType("FooClass"); // 获取静态方法的MethodInfo MethodInfo method = t.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public); // 调用方法 method.Invoke(null, null); } } class FooClass { public static void MyMethod() { Console.WriteLine("MyMethod invoked via reflection!"); } }</code>
Diese Methode ruft die Klassenreferenz direkt aus der Zeichenfolge ab und ruft die statische Methode der Klasse auf.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection eine C#-Klassenreferenz aus einem String abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!