我正在尝试获取在程序集中调用导致错误的方法的方法。
我有一个记录错误的错误例程。我想得到调用程序集和方法以及发生错误的程序集和方法。我得到了4分中的3分,我只是无法弄清楚如何获得调用方法。
假设我有一个表单,并且单击了一个按钮,调用另一个组件中的方法出错。我想要与表单和单击事件一起发生错误的程序集和方法。点击事件是我找不到的。
VB
Dim Trace As System.Diagnostics.StackTrace
Trace = New System.Diagnostics.StackTrace(ex, True)
'Returns the assembly where the error occurred
Trace.GetFrame(Trace.FrameCount - 1).GetMethod.ReflectedType.FullName
'Returns the calling assembly
Assembly.GetCallingAssembly.FullName.Split(","c)(0)'Would be nice to get the class too but I can live without it.
'Method where the error occurs
ex.TargetSite.Name
'Initial calling method
???
C#
System.Diagnostics.StackTrace Trace;
Trace = New System.Diagnostics.StackTrace(ex, True);
//Returns the assembly where the error occurred
Trace.GetFrame(Trace.FrameCount - 1).GetMethod().ReflectedType.FullName;
//Returns the calling assembly
Assembly.GetCallingAssembly().FullName.Split(',')[0];//Would be nice to get the class too but I can live without it.
//Method where the error occurs
ex.TargetSite.Name;
//Initial calling method
???
我可以看到堆栈跟踪中的源代码(Main.btnCancel_CLick但是无法获取它。我的堆栈跟踪帧数是1,我有一个方法,那个带有try catch块的方法。除非有其他方法可以得到它,我无法弄清楚。有人知道吗?