1

所以,奇怪的问题。我正在使用 Debug.WriteLine() 来写出我的输出,但对于我的任何错误,我都希望看到代码和行值的引用或链接。VS能做到吗?

我知道 Firebug/WebDev 控制台是如何做到的。

谢谢,

调试

4

2 回答 2

3

您可以使用 StackTrace 类来获取此信息。像这样:

    public class Utils {
        public static string MyCaller {
            get {
#if DEBUG
                var trace = new StackTrace(true);
                var frame = trace.GetFrame(1);
                return frame.GetFileName() + "#" + frame.GetFileLineNumber().ToString();
#else
            return "N/A";
#endif
            }
        }
    }

示例用法:

class Program {
    static void Main(string[] args) {
        Debug.Print("Hello world from {0}", Utils.MyCaller);
    }
}

输出:

来自 C:\Users\hpassant\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs#10 的你好世界

于 2012-10-02T18:20:51.600 回答
1

Visual Studio 2012 可以使用调用者信息来执行此操作。

请参阅http://msdn.microsoft.com/en-us/library/hh534540.aspx

(虽然不是链接,但至少你得到了信息。)

于 2012-10-02T17:09:50.027 回答