c#在程序集中获取项目名称

时间:2014-02-13 21:49:47

标签: c#

我需要找到一种方法来获取将引发异常的类文件名。 例如,项目的树结构将是

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

2 个答案:

答案 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”