Как отладить приложение silverlight с помощью OpenFileDialog? - PullRequest
4 голосов
/ 01 марта 2011

Я пытаюсь отладить мое приложение silverlight, которое содержит вызов OpenFileDialog.ShowDialog () - и я получаю исключение ошибки о безопасности («SecurityException не обрабатывалось кодом пользователя: диалоги должны инициироваться пользователем»)я запускаю приложение без отладки - я не получаю это исключение.

Но я должен запустить его в режиме отладки, потому что мне нужно убедиться, что я правильно делаю с файлом, который выбирает клиент ...

Как мне запустить его в режиме отладки?

Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 01 марта 2011

Если вы, и я предполагаю, что вы инициируете вызов ShowDialog () нажатием кнопки, Silverlight имеет странную эвристику для определения, было ли действие инициировано пользователем.

Он работает с отладкой,но если вы переходите через код от Button_Click к ShowDialog (), кажется, что из-за задержки это не инициированное пользователем действие.

Чтобы обойти это, я быРекомендую использовать ведение журнала, а не проходить через для отладки приложения.Silverlight печально известен тем, что выдает эти исключения при попытке отладки вызовов ShowDialog ().

* EDIT

Silverlight не использует Click () событие, чтобы определить, была ли кнопка инициирована пользователем.Он использует множество эвристик для правильного определения, включая таймер (именно поэтому отладка не выполняется)

2 голосов
/ 01 марта 2011

Эта проблема была зарегистрирована в Microsoft:

http://connect.microsoft.com/VisualStudio/feedback/details/597430/debugging-of-code-between-the-user-initiated-entry-point-and-call-for-the-savefiledialog-openfiledialog-showdialog-method-lead-to-the-dialogs-must-be-user-initiated-exception#details

Просто установите точку останова после .ShowDialog ().

0 голосов
/ 01 марта 2011

убедитесь, что при открытии диалогового окна оно вызывается нажатием кнопки.Это сделано из соображений безопасности.

Редактировать

Очевидно, в IE есть ошибка, которая может привести к возникновению этой ошибки, даже если пользователь инициировал

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

Еще одна хитрость в исключении безопасности «Диалоги должны быть инициированы пользователем» при печати Silverlight

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...