如何使用OpenFileDialog调试silverlight应用程序?

时间:2011-03-01 08:32:13

标签: silverlight

我尝试调试包含OpenFileDialog.ShowDialog()调用的silverlight应用程序 - 我得到有关安全性的错误异常(“SecurityException未被用户代码处理:对话框必须由用户启动”)

当我在没有调试的情况下运行应用程序时 - 我没有得到此异常。

但我必须在调试模式下运行它,因为我需要看到我使用客户选择的文件做正确的事情......

如何在调试模式下运行它?

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

如果您是,并且我认为您是,通过单击按钮启动ShowDialog()调用,Silverlight有一些奇怪的启发式方法来确定操作是否是用户启动的。

它可以与调试一起使用,但是如果您通过Button_Click中的代码踩到ShowDialog(),它似乎认为由于延迟,它不是用户启动的操作。

为了解决这个问题,我建议使用日志记录而不是单步调试应用程序。 Silverlight因尝试调试ShowDialog()调用而抛出这些异常而臭名昭着。

*修改

Silverlight不使用Click()事件来确定按钮是否是用户启动的。它使用一系列启发式方法来正确地确定它包括一个计时器(这就是调试失败的原因)

答案 1 :(得分:2)

答案 2 :(得分:0)

确保在打开对话框时单击按钮触发。这样做是出于安全原因。

修改

显然IE中存在一个错误,即使用户启动

也会导致此错误

http://forums.silverlight.net/forums/p/208282/491053.aspx

Another knack on the "Dialogs must be user-initiated" Security Exception in Silverlight printing