如何获取正在调用另一个类静态函数的类名
本文关键字:另一个 调用 静态函数 何获取 获取 | 更新日期: 2023-09-27 18:26:21
可能重复:
从方法(C#)中检索调用方法名称
我有一个类,比如A
,其中有一个方法叫Func1
;此函数是静态的。现在还有一些其他类,比如B
、C
,使用A.Func1
如何获取包含正在调用的函数的类名?
即
public class A
{
public static void Func1()
{
// who called me?
}
}
public class B
{
public void CallFunc()
{
A.Func1();
}
}
public class C
{
public void AlsoCallFunc()
{
A.Func1();
}
}
可以使用StackTrace类访问此类信息。
为了获得调用方法名称,我有时会使用这个函数但你需要检查它是否适用于你的特定情况:
private static string GetCallingMethodName()
{
const int iCallDeepness = 2;
System.Diagnostics.StackTrace stack = new System.Diagnostics.StackTrace(false);
System.Diagnostics.StackFrame sframe = stack.GetFrame(iCallDeepness);
return sframe.GetMethod().Name;
}
如果您需要使用表单并想知道调用的是哪个表单,则使用事件和发送方
也许您使用的输出
Environment.StackTrace