我需要找到一种方法来获取将引发异常的类文件名。 例如,项目的树结构将是
SchoolCourses (assembly name)
->GraduatePrograms.cs
->UndergraduatePrograms.cs
->CommunityPrograms.cs
->SchoolCourseMain.cs
我试过System.Reflection:
return "ERROR:\n An error has occurred in " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
output:
ERROR:
An error has occurred in SchoolCourses
然而,这是返回项目名称,我希望它更像是
output:
ERROR:
An error has occurred in SchoolCourses.GraduatePrograms
答案 0 :(得分:4)
您可以使用this.GetType().Name
return "ERROR:\n An error has occurred in " + this.GetType().Name;
答案 1 :(得分:2)
替代方案可能是使用Environment.StackTrace
属性。
http://msdn.microsoft.com/en-us/library/system.environment.stacktrace%28v=vs.110%29.aspx
StackTrace属性为每个方法调用格式化堆栈跟踪信息,如下所示:
“在FileName中的FullClassName.MethodName(MethodParams):line LineNumber”