查找函数Invoker

本文关键字:Invoker 函数 查找 | 更新日期: 2023-09-27 18:00:51

我有这样的C#函数:

private void test(){}

有什么方法可以找到函数的Invoker或调用者吗?
例如:

private void Caller(){
test();
}

那么我怎么能理解Caller调用了那个测试呢?

查找函数Invoker

查看如何获取此方法的调用程序类

您可以从调用堆栈中获取方法的名称。

当您调用一个函数时,名称和其他信息都会被推送到调用堆栈,这样程序就知道如何从该函数调用中返回。您可以使用该信息来获取调用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");
}