首頁 > 後端開發 > C++ > 如何使用C#反射取得呼叫方法名稱和類別名稱?

如何使用C#反射取得呼叫方法名稱和類別名稱?

Barbara Streisand
發布: 2024-12-31 14:10:16
原創
350 人瀏覽過

How Can I Get the Calling Method's Name and Class Name Using C# Reflection?

使用反射檢索呼叫方法詳細資訊

開始取得有關呼叫方法的資訊的任務時,您可能會遇到需要了解呼叫方法的名稱和呼叫方法的訊息。包含類別的名稱。 C# 反射可讓您有效地收集這些詳細資訊。

要達成此目的,請設計一個利用 StackFrame 類別的方法。實例化一個StackFrame對象,參數為1,代表呼叫方法。隨後,在堆疊幀上呼叫 GetMethod() 方法以檢索呼叫方法的資訊。 DeclaringType 屬性提供對呼叫方法的包含類別的訪問,Name 屬性產生呼叫方法的名稱。

例如,考慮以下程式碼片段:

public class SomeClass
{
    public void SomeMethod()
    {
        StackFrame frame = new StackFrame(1);
        var method = frame.GetMethod();
        var type = method.DeclaringType;
        var name = method.Name;
    }
}
登入後複製

結合使用使用呼叫方法,此程式碼可以透過類型變數存取其包含類別的名稱,並透過名稱變數存取呼叫方法的名稱。

中.NET 4.5 中,CallerMemberNameAttribute 提供了一種替代的簡化方法。使用它需要向方法引入一個參數並使用 [CallerMemberName] 屬性對其進行註解:

public void SomeMethod([CallerMemberName]string memberName = "")
登入後複製

這裡,memberName 參數將自動填入呼叫方法的名稱。

以上是如何使用C#反射取得呼叫方法名稱和類別名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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