如何在Silverlight中调试XAML分析错误?

Nic*_*tch 9 debugging silverlight xaml silverlight-3.0

我半定期地遇到以下问题:我对XAML或它使用的一些资源进行了更改,当我在调试模式下加载Silverlight项目时,它只能获得旋转的Silverlight加载动画.

我已经尝试将VS08调试器附加到进程,但此时它没有做任何事情(一旦我在Silverlight中但之前没有工作正常.)

根据以前的经验,我注意到当XAML或其中的资源出现问题时会发生这种情况,但到目前为止我唯一的解决方案是逐行剖析代码,直到我发现问题为止.

有没有简单的方法来调试/诊断这些情况?

UPDATE

我在一些帮助下发现了这个问题,但它仍然没有提供调试这些类型问题的好方法.

Nic*_*tch 5

这是一个真正的调试痛苦,但我终于发现隐藏在构造函数深处的问题我们的一个自定义控件(它正在寻找一个不存在的资源.)真正的问题不是解决问题而是找到它.

我发现IE会响应从Silverlight传递到DOM的异常,但是你在Chrome浏览器中没有得到同样的反馈(我使用的).这个解决方案实际上有很大帮助(甚至比IE提示更多) )是将App.xaml.cs中的ReportErrorToDOM()方法修改为以下内容:

private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
{
    string errorMsg = String.Empty;
    try
    {
        errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
        errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");

        System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
    }
    catch (Exception)
    {
#if DEBUG
        MessageBox.Show(errorMsg);
#endif
    }
}
Run Code Online (Sandbox Code Playgroud)

这使您可以在XAML中找到问题所在的位置.它不是一个理想的调试器,但确实有帮助.