Я много читал о System.AddIn (a.k.a. Managed Add-in Framework). Он позволяет активировать надстройки в разных режимах изоляции, включая отдельные домены приложений или отдельные процессы.
Большинство статей, которые я обнаружил, намекают на то, что изоляция процесса может использоваться для достижения надежности приложения, когда надстройка может аварийно завершить работу с необработанным исключением, но приложение не будет аварийно завершать работу и может выгружать нарушающее надстройку и продолжай.
Мне еще предстоит найти статью, в которой на самом деле объясняется, как это сделать. Я пытался выяснить методом проб и ошибок, но пока что со всем, что я пробовал, хост-приложение вылетает, если надстройка выдает необработанное исключение. У меня каждая надстройка работает в своем собственном процессе, но, похоже, есть еще кусочки головоломки, которые я не понимаю.
Можно ли использовать System.AddIn для создания хоста, который может пережить необработанное исключение в одной из его надстроек? Есть ли примеры кода или статьи, где это прописано? Если это невозможно с System.AddIn, есть ли другая архитектура, которая допускает это в приложении .NET?