假设有methodA()、methodB()和methodC()。
并且 methodC() 在运行时被调用。
有可能知道 methodC() 是从什么方法调用的吗?
我在想是否可以在运行时读取 CallStack 进行一些检查?如果是的话,我认为这应该没什么大不了的。
有任何想法吗?
谢谢!
假设有methodA()、methodB()和methodC()。
并且 methodC() 在运行时被调用。
有可能知道 methodC() 是从什么方法调用的吗?
我在想是否可以在运行时读取 CallStack 进行一些检查?如果是的话,我认为这应该没什么大不了的。
有任何想法吗?
谢谢!
使用StackTrace
和StackFrame
类。例如:
StackTrace stackTrace = new StackTrace();
StackFrame[] stackFrames = stackTrace.GetFrames();
foreach (StackFrame stackFrame in stackFrames)
{
string method = stackFrame.GetMethod().Name;
// do some stuff with method
}
是的,可以在运行时使用StackTrace.GetFrames 读取调用堆栈。