Самый безопасный способ - загрузить этот плагин в отдельный AppDomain , который вы конфигурируете с помощью свидетельства безопасности для ваших требований .
Когда вы создаете домен приложения, вы можете точно указать, что именно код может делать в этой песочнице. Код, который там работает, ограничен установленными вами ограничениями. Но этот процесс может сбить вас с толку в первый раз, и вы все равно можете оставить вас уязвимыми.
Использование доменов приложений для изоляции сборок - интересный процесс. Можно подумать, что вы загружаете свои плагины в другой домен приложений, а затем используете их через прокси в вашем домене приложений, но наоборот. Им нужно использовать ваши прокси в своем домене приложений. Если вы не понимаете и делаете это правильно, вы в конечном итоге загрузите код своего плагина в свой основной домен приложений и выполните его там, а не в ограниченном домене. Есть много ошибок, которые вы получите постепенно (подписка на события имеет некоторые интересные побочные эффекты), если вы не сделаете все правильно.
Я бы посоветовал создать прототип, освежить в главе AppDomain в CLR Via C # и прочитать как можно больше об этом предмете.
Вот тестовое приложение, которое я сделал для исследования событий между доменами.
http://cid -f8be9de57b85cc35.skydrive.live.com / self.aspx / Public / appdomainevents.rar