在C#中獲取調用方法的方法名
C# 開發者經常需要確定調用當前執行方法的方法。雖然 System.Reflection.MethodBase.GetCurrentMethod()
可以獲取當前方法的信息,但要獲取調用方法的信息,需要更深入地了解堆棧跟踪。
遍歷堆棧跟踪
解析堆棧跟踪看似可行,但存在更簡潔直接的方法。 Assembly.GetCallingAssembly()
可以獲取調用程序集的信息,類似的方法也適用於方法。
向上遍歷堆棧
System.Diagnostics.StackTrace
類可以實現此目的。通過實例化此類並調用其 GetFrame(1)
方法,可以向上遍歷堆棧跟踪一級,並獲取調用方法。然後,可以使用 GetMethod().Name
獲取調用方法的名稱。
示例代碼
以下代碼演示了此技術的用法:
<code class="language-csharp">using System.Diagnostics; // 获取调用堆栈 StackTrace stackTrace = new StackTrace(); // 获取调用方法名 Console.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);</code>
或者,可以將整個過程簡化為一行代碼:
<code class="language-csharp">(new System.Diagnostics.StackTrace()).GetFrame(1).GetMethod().Name</code>
以上是如何獲得C#中稱為當前方法的方法的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!