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

4
我试图调试我的Silverlight应用程序,其中包含OpenFileDialog.ShowDialog()调用,但是我遇到了安全性错误异常(“SecurityException was unhandled by user code: Dialogs must be user-initiated”)。
当我在不调试的情况下运行应用程序时,我不会遇到此异常。
但是我必须在调试模式下运行它,因为我需要查看客户选择的文件是否正确...
如何在调试模式下运行它?
感谢任何帮助。
3个回答

2
如果您正在通过单击按钮来启动ShowDialog()调用,Silverlight有一些奇怪的启发式算法来确定该操作是否是用户启动的。它在调试时可以正常工作,但如果您从Button_Click到ShowDialog()步进代码,它似乎认为由于延迟,这不是用户启动的操作。为了解决这个问题,我建议使用日志记录而不是步进调试应用程序。Silverlight以在尝试调试ShowDialog()调用时抛出这些异常而闻名。*编辑:Silverlight不使用Click()事件来确定按钮是否是用户启动的。它使用一系列启发式算法来正确确定,包括一个计时器(这就是为什么调试失败的原因)。

你的意思是像“附加到进程”一样调试它吗? - Yanshof
如你所说,如何调试?你说的“使用日志记录而不是逐步调试应用程序”是什么意思? - Yanshof
好的。是的,我的意思是将debug.writeline或其他类型的日志记录放在代码中,而不是逐步执行代码。 - Ray Booysen

2

我在showDialog()之后设置了断点,但这并没有解决问题。 - Yanshof

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接