让我们考虑一下我们在代码中抛出了一个Exception ex。现在,在捕获主体中,我想访问六项信息:
我已经知道的是使用
System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(e, true);
我可以访问其中一些信息(文件的完整路径,行号等)。但是,这些信息并不是我所需要的。例如,我不知道如何从跟踪中提取解决方案名称或名称空间名称。显然,也不是要解析文件的路径,因为不同的错误可能具有多层文件和文件夹层次结构,并且一个全局规则不能解决所有错误。
我想知道有什么方法可以通过编程方式访问这些信息吗?
非常感谢。
答案 0 :(得分:0)
很可能您将无法获得理想的东西,但是我将分享一些您可能不了解或考虑的工具和想法:
CallerFilePathAttribute
,CallerLineNumberAttribute
和CallerMemberNameAttribute
,当添加到可选方法参数中时,它们将导致编译器根据上下文自动插入默认值您可以创建具有此类属性的帮助程序方法来捕获所需的信息。