silverlight - 如何在 Silverlight 中调试 XAML 解析错误?

标签 silverlight debugging xaml silverlight-3.0

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

我尝试将 VS08 调试器附加到进程,但此时它没有执行任何操作(在 Silverlight 中后工作正常,但之前不行。)

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

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

更新

我找到了this question在一些帮助下,但它仍然没有提供调试此类问题的好方法。

最佳答案

调试起来确实很痛苦,但我最终发现问题隐藏在我们的一个自定义控件的构造函数中(它正在寻找不存在的资源。)真正的问题不是修复问题但找到了。

我发现 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
    }
}

这为您提供了 XAML 中问题开始的位置。它不是一个理想的调试器,但它确实有帮助。

关于silverlight - 如何在 Silverlight 中调试 XAML 解析错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389454/

相关文章:

java - IntelliJ "Debug info unavailable"- 如何修复?

c# - 如果c# wpf中的可见性为 'Auto',如何知道 ListView 的VerticalScrollbar是否可见?

wpf - 在Visual Studio 2010中调试和修复ObjectDisposedException

silverlight - Windows Phone 7 中是否有可用的颜色选择器控件?

c# - Silverlight 调试问题

c++ - 使用 Valgrind 调试 Use After Free

c++ - 为什么我从 gdbserver 得到 "not in executable format: Success",但在 gdb 中一切正常?

c# - DynamicResource 未显示正确的值

c# - 如何模拟使用 silverlight 客户端对象模型?

c# - 是否可以为 WPF 和 Silverlight 编译相同的控件?