Шаблон проектирования для реализации плагинов в вашем приложении?

Каков стандартный способ разрешения и внедрения системы плагинов для вашего приложения?

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

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

Каков "правильный" способ сделать систему плагинов? Вы просто создаете интерфейс для плагинов? Вы должны периодически вызывать определенный метод во всех плагинах? Есть ли более изощренный способ?

РЕДАКТИРОВАТЬ:

Спасибо Мэтту Гамильтону за ссылку на пространство имен System.Addin. Скорее всего, именно так я реализую свои плагины. Тем не менее, мне все еще интересно узнать об архитектуре плагинов в целом, и я не возражаю против некоторой предыстории о том, как лучше их проектировать, реализовывать ... как вы должны вызывать их после загрузки и т. Д.

Ответы на вопрос(4)

Ваш ответ на вопрос