使用反射在 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中文網其他相關文章!