【问题标题】:Postsharp for compile time line numbersPostsharp 用于编译时行号
【发布时间】:2012-03-29 14:37:18
【问题描述】:

我想显示我的跟踪消息的行号。

示例跟踪:SomeMethodUsingPostSharpOnEntry (Line:74): Done doing something.

我无法使用 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 宏?

【问题讨论】:

    标签: c# aop postsharp


    【解决方案1】:

    现在没有太多帮助,但 C# 5 将通过“调用者信息属性”获得此帮助。阅读 C# 团队 blog post about C# 5 and VS 11 beta 了解更多信息,或查看这些属性的文档:

    【讨论】:

      【解决方案2】:

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

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

      最后,重新启动 Visual Studio。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-13
        • 1970-01-01
        相关资源
        最近更新 更多