Каков стандартный способ разрешения и внедрения системы плагинов для вашего приложения?
В моем последнем приложении я сделал простой интерфейс для всех плагинов, которые они должны реализовать. Затем я загружаю все сборки в каталог приложений и выбрасываю все, которые не реализуют этот интерфейс.
Одним из методов в интерфейсе является метод DoWork (), который периодически вызывается на всех загруженных сборках для выполнения любых действий, которые могут иметь плагины.
Каков "правильный" способ сделать систему плагинов? Вы просто создаете интерфейс для плагинов? Вы должны периодически вызывать определенный метод во всех плагинах? Есть ли более изощренный способ?
EDIT:
Спасибо, Мэтт Гамильтон, за ссылку на пространство имен System.Addin. Скорее всего, именно так я реализую свои плагины. Тем не менее, мне все еще интересно узнать об архитектуре плагинов в целом, и я не возражаю против некоторой предыстории о том, как лучше всего их проектировать, реализовывать ... как их вызывать после загрузки и т. Д.