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

Подскажите пожалуйста, у меня такая ситуация. В общем есть wpf приложение на 4.5.2 .net фреймворке, которое генерирует динамически dll и выполняет его. Такая операция происходит с высокой частотой (скажем до нескольких раз в секунду). При этом особого контроля над генерированной dll нет, в том плане что код в dll может вызывать бесконечную рекурсию, выделять неограниченное количество памяти и тд. На данный момент пока все эти dll грузятся в default app domain (они пока не выгружаются, и я как раз работаю над этим). Моя цель безопасно загружать dll, выгружать а также выполнять (причем так, чтобы код основной программы при этом работал стабильно, процесс не завершался экстренно и тд). Изучив возможности .net я понял что appdomain может частично решить проблему выгрузки dll, но полной безопасности (даже в случае переполнения стэка) этот механиз не предоставляет. более того, это довольно неудобная штука, если необходим маршаллинг между app доменами. И на самом деле там помимо этого много проблем (ну например при маршаллинг в default app domain все равно остается на неопределенное время динамическая библиотека). В общем насколько я понимаю единственный выход это использовать child процесс в котором изолировать dll, и общаться с родительским протоколом через "shared memory"?


Ответы (0 шт):