在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中文网其他相关文章!