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