IPlugin
{
...
OnChange(args);
}
Рассылка для плагинов
Гланое приложение грузит плагины следующим образом
1)Смотрит все dll в файле с плагинами
2)Грузит их
3)Вынимает все типы из сборки и если тип(класс) поддерживает интерфейс IPlugin создает экземпляр этого типа - это и будет экземпляр плагина.
Как сделать следующие вещи:
1)Мне нужно, чтобы плагины "узнали" о том что произошло какое-то событие в хостовом приложении
2)Список событий на которое подписывается плагин можно было более-менне легко настраивать.
через COM и
Можно пример кода для Callback. Ну или словами или ссылочку
Цитата: MixerLosev
COM не подойдет.У меня .NET.
Можно пример кода для Callback. Ну или словами или ссылочку
Можно пример кода для Callback. Ну или словами или ссылочку
В интерфейс плагина добавляешь callback-функцию-обработчик события.
Код:
В контроллере плагинов, у каждого плагина вызываешь метод, после наступления требуемого события.
Код:
aPlugins.Change(...);
Можно вместо нескольки функций на каждое событие использовать одну и передавать тип события в качестве второго аргумента.
Вообще, наверное лучше использовать паттерн observer (наблюдатель), и уже каждый плагин подписывать на требуемые события (это по поводу настройки событий), например при инициализации объекта-плагина.
ЗЫ Вообще, кажется hardcase давал ссылку на полезный материал по проектированию плагинов / модульных систем.
Спасибо за информацию, сделал.