我试图得到第一个方法名称,发起了多个方法调用。如何在C#中的多个子方法中找到父方法名?
,比如我有以下,
static void Main(string[] args)
{
Test1();
}
static void Test1()
{
Test2();
}
static void Test2()
{
Console.WriteLine("Soemthing");
}
在Test2的方法,我需要知道的主要方法已经启动了这一链条。 我尝试使用StackTrace和Reflection如下。
StackTrace stackTrace = new StackTrace();
MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
Console.WriteLine(methodBase.Name);
但stackTrace.getFrame(1)不是我所期望的。它会给我以前的方法是Test1。
我不想将getFrame值硬编码为以获取Main方法。
有没有办法从任何子方法获得父方法没有硬编码帧值?
如果您想手动执行此操作,您可以右键单击该方法,然后单击Go To Deifnition或Peek Definition,继续这样做,直到找到所需的父级。但自动im不知道 – Brendon
“初始方法”的标准是什么?在单线程控制台应用程序中,它始终是'Main',不需要确定它...在Web服务中,您可以通过IIS程序集爬取... –
我这样做只是为了研究。但最终我们会使用MVC 6 WebAPi。@RenéVogt –