利用StackTrace在C#中识别方法调用者
在C#中,确定调用当前方法的方法对于故障排除和调试至关重要。虽然System.Reflection.MethodBase.GetCurrentMethod()
可以提供有关当前方法的信息,但它无法显示调用它的方法。
要获取调用方法的名称,可以使用StackTrace
类。此类捕获执行堆栈,包括一直到当前点的调用方法序列。
解决方案:
StackTrace
对象:<code class="language-csharp">StackTrace stackTrace = new StackTrace();</code>
<code class="language-csharp">StackFrame frame = stackTrace.GetFrame(1); // 跳过当前方法帧</code>
<code class="language-csharp">string callingMethodName = frame.GetMethod().Name;</code>
示例:
<code class="language-csharp">// 获取调用堆栈 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中文网其他相关文章!