• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

miherlosev

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

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

Я использую .NET.
 
E

etc

Вынимает все типы из сборки
Нафига? есть же атрибуты асэмблаевские.
Мне нужно, чтобы плагины "узнали" о том что произошло какое-то событие в хостовом приложении
Для этого надо делать систему оповещения.
Список событий на которое подписывается плагин можно было более-менне легко настраивать.
Вот тут непонятно. Что такое "легко настраивать"?
 
M

miherlosev

1)Мой вариант кажется мне предпочтительней( вынимам все типы из сборки и т.д.), т.к. в одной ассембле может быть несколько плагинов
2)"Делать систему оповещения" - опишите пожалуйста принцип ее работы (или можно ссылочку)
3)Легко настраивать - каждый плагин сам подписывается на те события которые ему нужны
 
E

etc

1 - отделять мух от котлет в первую очередь, т.е. если длл не содержит атрибут, то циклить по типам нет смысла, ну да хозяин барин.
2 - дык простые ивенты, вот вам и система оповещения, не на виндовых же событиях раскручивать ...
3 - эээ, я то думал ... см 2.
 
M

miherlosev

Спасибо за информацию, сделал.
Применил паттерн программирования ObServer
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!