首頁 > 後端開發 > C++ > 如何使用反射從 C# 中的字串取得類別引用?

如何使用反射從 C# 中的字串取得類別引用?

Patricia Arquette
發布: 2025-01-14 10:04:44
原創
168 人瀏覽過

How Can I Get a Class Reference from a String in C# Using Reflection?

使用反射從字串中擷取 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板