Задать вопрос
@dmitriy_domaskin
.NET Developer

Как подключать классы как плагины при старте приложения?

Пишу векторный графический редактор. На данный момент в приложении реализовано множество классов геометрических фигур Line, Ellipse, Circle, Poligon и тд. Классы реализуют различные интрефейсы, IDrawfble, IBrushable, IMultupoint и тд. Проект реализован так, что код завязан на этих интерфейсах, а не конкретных классах. Требуется подключать классы фигур как плагины при старте приложения, и сама программа о этих фигурах ничего не знала, а интерфейсные сущности были вынесены в отдельную сборку SDK. Не хватает знаний как это реализовать и вообще в какую сторону копать. Подкиньте информации на данную тему
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 3
Позднее связывание. В сдк выносите общие типы, плагины или реализуют какой-то тип, или от какого-то типа наследуются. Загружаете сборку, находите реализацию (или наследование от) этого типа, инстанциируете и понеслась.
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
https://docs.microsoft.com/ru-ru/dotnet/framework/mef/

пока mef плотно используется в продуктах ms, так что предположительно у него длинная линия жизни
Ответ написан
Комментировать
@Ascar
di containers, выберите любой. В конструкторах указываете:
IDrawfble _drawfble;
IBrushable _brushable;
IMultupoint _multupoint;
public MyClass(IDrawfble drawfble, IBrushable brushable, IMultupoint multupoint){
_drawfble=drawfble;
_brushable=brushable;
_multupoint-multupoint;
}

Потом di контейнер связывает/передает в них уже объекты из ваших сборок.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы