Рассылка для плагинов

  • Автор темы Автор темы miherlosev
  • Дата начала Дата начала
M

miherlosev

Есть главное приложение. Есть плагины. Плагин - dll, в которой зашит некоторый класс, реализующий интерфейс IPlugin.
Гланое приложение грузит плагины следующим образом
1)Смотрит все dll в файле с плагинами
2)Грузит их
3)Вынимает все типы из сборки и если тип(класс) поддерживает интерфейс IPlugin создает экземпляр этого типа - это и будет экземпляр плагина.

Как сделать следующие вещи:
1)Мне нужно, чтобы плагины "узнали" о том что произошло какое-то событие в хостовом приложении
2)Список событий на которое подписывается плагин можно было более-менне легко настраивать.

Я использую .NET.
 
Вынимает все типы из сборки
Нафига? есть же атрибуты асэмблаевские.
Мне нужно, чтобы плагины "узнали" о том что произошло какое-то событие в хостовом приложении
Для этого надо делать систему оповещения.
Список событий на которое подписывается плагин можно было более-менне легко настраивать.
Вот тут непонятно. Что такое "легко настраивать"?
 
1)Мой вариант кажется мне предпочтительней( вынимам все типы из сборки и т.д.), т.к. в одной ассембле может быть несколько плагинов
2)"Делать систему оповещения" - опишите пожалуйста принцип ее работы (или можно ссылочку)
3)Легко настраивать - каждый плагин сам подписывается на те события которые ему нужны
 
1 - отделять мух от котлет в первую очередь, т.е. если длл не содержит атрибут, то циклить по типам нет смысла, ну да хозяин барин.
2 - дык простые ивенты, вот вам и система оповещения, не на виндовых же событиях раскручивать ...
3 - эээ, я то думал ... см 2.
 
Спасибо за информацию, сделал.
Применил паттерн программирования ObServer
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab