如何使用messagebox输出调试信息

时间:2011-05-20 07:20:49

标签: c# silverlight debugging

我正在使用MessageBox尝试进行一些手动调试,这就是我想出来的,我该怎么做才能让它工作?

private void DisplayMessageBoxText()
        {
            MessageBox.Show("Alert Message");
        }

5 个答案:

答案 0 :(得分:6)

您可以使用writeline

写入调试控制台
System.Diagnostics.Debug.WriteLine("Alert message");

或者您可以使用以下方式疯狂地抛出警报框:

System.Windows.Browser.HtmlPage.Window.Alert("Alert Message"); 

答案 1 :(得分:3)

还有一些其他选项可以从您的应用程序中获取调试信息:

Debug.Assert( - some condition - , "A condition failed");

如果提供的条件不为真,Debug.Assert将显示一个消息框。

另一个有用的工具是Tracepoints,它们类似于断点,但不会破坏应用程序,而是将信息写入调试控制台。

答案 2 :(得分:3)

我经常使用http://www.gurock.com/smartinspect/,它非常适合记录各种变化,可以抓取各种对象,状态等。好的一面是你可以将它留在你的代码中,如果你以后遇到问题,只需连接听众,看看发生了什么。

投掷消息框也可能会中断您的程序,因为您正在更改焦点,具体取决于应用程序中出现错误的位置,例如,如果它是焦点/键类型问题,则可以将更多代码发生为非焦点/重新聚焦类型的消息得到处理。

答案 3 :(得分:0)

我不认为你是在这之后?

MessageBox.Show("Error details here");

只是有机会这是你不知道的事情......

答案 4 :(得分:0)

也许您正在寻找的答案更多的是这些方面?..

    private void DebugObject(object obj)
    {
        string printString = "";

        foreach (System.Reflection.PropertyInfo pi in obj.GetType().GetProperties())
        {
            printString += pi.Name + " : " + pi.GetValue(obj, new object[0]) + "\n" ;
        }

        MessageBox.Show(printString);
    }

此功能会将所有成员及其值打印到消息框中。如果您需要任何额外信息,请点击以下链接。

(感谢Jon Skeet在此处的回复:C# VS 2005: How to get a class's public member list during the runtime?