Ловля исключений, генерируемых плагином UserControl - PullRequest
2 голосов
/ 14 января 2009

Я пишу приложение WinForms, которое принимает динамические элементы управления пользовательского интерфейса в виде плагинов (например, виджетов). Для этого основная функция каждого плагина возвращает UserControl, который затем добавляется в основную форму.

Так как мое приложение не имеет прямого контроля над ними, я бы хотел «песочницей» плагинов в исключительных случаях, чтобы, если один из UserControls выдавал ошибку, я мог ее перехватить и выгрузить виновного. Очевидная проблема заключается в том, что элементы UserControls управляются событиями и могут генерировать исключения в миллионе различных мест, поэтому у меня нет ничего, что можно обернуть в блок try / catch.

Как я могу поймать исключения, выдаваемые динамическими UserControls или что было бы лучше для такого модульного приложения?

Ответы [ 2 ]

1 голос
/ 14 января 2009

Инкапсулируйте свой UserControl в объект, реализующий интерфейс вашего плагина, просто вызвав реализацию плагина и добавив логику try catch для каждого вызова.

1 голос
/ 14 января 2009

вы можете использовать глобальную обработку исключений (например, пользовательский HTTPModule), а затем определить, какое исключение было выброшено каким плагином.

посмотрите на эти ссылки, может быть полезно
http://www.15seconds.com/issue/030102.htm
http://codebetter.com/blogs/karlseguin/archive/2006/06/12/146356.aspx

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