Nic*_*tch 9 debugging silverlight xaml silverlight-3.0
我半定期地遇到以下问题:我对XAML或它使用的一些资源进行了更改,当我在调试模式下加载Silverlight项目时,它只能获得旋转的Silverlight加载动画.
我已经尝试将VS08调试器附加到进程,但此时它没有做任何事情(一旦我在Silverlight中但之前没有工作正常.)
根据以前的经验,我注意到当XAML或其中的资源出现问题时会发生这种情况,但到目前为止我唯一的解决方案是逐行剖析代码,直到我发现问题为止.
有没有简单的方法来调试/诊断这些情况?
我在一些帮助下发现了这个问题,但它仍然没有提供调试这些类型问题的好方法.
这是一个真正的调试痛苦,但我终于发现隐藏在构造函数深处的问题我们的一个自定义控件(它正在寻找一个不存在的资源.)真正的问题不是解决问题而是找到它.
我发现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中找到问题所在的位置.它不是一个理想的调试器,但确实有帮助.
| 归档时间: |
|
| 查看次数: |
3852 次 |
| 最近记录: |