使用反射從字串中擷取 C# 類別參考
C# 反射提供了動態存取和操作運行時類型資訊的強大機制。 這包括僅使用其字串表示形式檢索類別引用。
流程:
此任務的核心方法是Type.GetType()
。此方法接受包含完全限定類型名稱的字串,並傳回表示該類型的 Type
物件。
範例:
假設您有一個名為 FooClass
的類別。 要取得其 Type
物件:
<code class="language-csharp">string className = "FooClass"; Type type = Type.GetType(className);</code>
要存取 FooClass
中的靜態方法(例如 MyMethod
),請使用 GetMethod()
:
<code class="language-csharp">MethodInfo method = type.GetMethod("MyMethod", BindingFlags.Static | BindingFlags.Public);</code>
最後,使用 Invoke()
呼叫此方法:
<code class="language-csharp">method.Invoke(null, null); // null for static methods, null for no parameters</code>
請記住,null
用作靜態方法的第一個參數(不需要實例),第二個參數是參數數組(如果方法不帶參數,則為 null)。
處理外部組件:
上面的範例假設 FooClass
駐留在同一個程式集中。對於位於不同程序集中的類型,必須提供程序集的名稱作為完全限定類型名稱的一部分。 確切的格式取決於程序集的位置。 有關在 Type.GetType()
方法中指定程序集名稱的詳細指導,請參閱 MSDN 文件。
進一步探討:
要更全面地了解 C# 反射,請參閱有關 Type.GetType()
、MethodInfo.GetMethod()
和 MethodInfo.Invoke()
的 Microsoft 官方文件。 這些資源提供了全面的詳細資訊和進階使用情境。
以上是如何使用反射從 C# 中的字串取得類別引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!