2012-03-29 73 views
1

我想显示我的跟踪消息的行号。编译时间行号的Post帖子

示例跟踪:SomeMethodUsingPostSharpOnEntry(Line:74):完成某事。

我不能使用stackframe/trace(运行时反射解决方案&不确定是否将分布pdb)。

已经看过Microsoft选项(http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/6a7b021c-ec81-47c5-8f6a-2e280d548f3f)和基于pdb的解决方案(How can I include line numbers in a stack trace without a pdb?)。

是否有任何方式使用Postsharp或其他方式获取/制作LINE宏等价物?

回答

2

中有PostSharp做一个隐藏的选项。首先,您必须使用Message.Write的适当重载发出错误消息;例如接受MethodInfo(或另一个MessageLocation)的人。

然后,您需要在Visual Studio选项/ PostSharp/Experimental中启用实验性选项。

最后,重新启动Visual Studio。

这应该会导致PostSharp解析您作为参数传递的MethodInfo的位置。此功能依赖Visual Studio,可能会很慢,这就是为什么它是实验性的。