2

假设有methodA()、methodB()和methodC()。

并且 methodC() 在运行时被调用。

有可能知道 methodC() 是从什么方法调用的吗?

我在想是否可以在运行时读取 CallStack 进行一些检查?如果是的话,我认为这应该没什么大不了的。

有任何想法吗?

谢谢!

4

2 回答 2

7

使用StackTraceStackFrame类。例如:

StackTrace stackTrace = new StackTrace();          
StackFrame[] stackFrames = stackTrace.GetFrames();

foreach (StackFrame stackFrame in stackFrames)
{
    string method = stackFrame.GetMethod().Name;
    // do some stuff with method
}
于 2009-12-09T13:48:19.777 回答
2

是的,可以在运行时使用StackTrace.GetFrames 读取调用堆栈

于 2009-12-09T13:48:41.830 回答