查找函数Invoker
本文关键字:Invoker 函数 查找 | 更新日期: 2023-09-27 18:00:51
我有这样的C#函数:
private void test(){}
有什么方法可以找到函数的Invoker或调用者吗?
例如:
private void Caller(){
test();
}
那么我怎么能理解Caller调用了那个测试呢?
查看如何获取此方法的调用程序类
您可以从调用堆栈中获取方法的名称。
当您调用一个函数时,名称和其他信息都会被推送到调用堆栈,这样程序就知道如何从该函数调用中返回。您可以使用该信息来获取调用test((函数的上一个函数。
要获得堆叠竞速,您可以使用以下方法:
StackTrace stackTrace = new StackTrace();
StackFrame[] stackFrames = stackTrace.GetFrames();
Console.WriteLine(stackFrames[1].GetMethod().Name);
在调用方中使用一个参数,该参数在方法调用测试时会有所不同。类似于从调用方调用测试时使用测试(1(当从另一个函数调用时使用测试。调用方使用测试(2(
您可以将字符串参数添加到以进行测试,
private void test(string whoCalled){}
If and in Caller,
private void Caller() {
test("Caller");
}