Есть ли способ заблокировать доступ плагина C # к основному приложению C # в программе?

У меня есть программа и простая архитектура плагинов, в которой плагины реализуют общий интерфейс, а основная программа загружает все плагины, реализующие этот интерфейс. Это самая распространенная архитектура настраиваемых плагинов, которую я нашел до сих пор, поэтому я использую ее.

Я не использую Microsoft MEF, и у меня есть причины не делать этого. Я оставлю все как есть.

Проблема в том, что когда плагины загружаются, независимо от того, насколько они «слепы» к основной программе и ей » формы / классы / и т. д. он все еще может получить доступ к System.Windows.Forms.Application и, следовательно, может получить доступ к моему приложению и его текущим формам / методам / элементам управления / и т. д.

Я не хочу этого. Есть ли способ ограничить доступ плагина к основному приложению?

РЕДАКТИРОВАТЬ: Дополнительная информация о плагине

Мы (мой босс и я) в настоящее время обсуждаем, что должны делать плагины. Очевидно, что всем им нужно добавить функциональность, но мы изначально решили предоставить каждому плагину доступ к текущей запущенной форме, чтобы он мог добавлять элементы управления и события непосредственно в форму. Это было основано на предположении, что только мы, разработчики, будем писать их.

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

Или знак «Take One», висящий на вазе с отдельными кеглями на Хэллоуин.

6
задан Mike Webb 26 January 2011 в 20:19
поделиться