Лучший способ создать среду плагинов в .NET - PullRequest
10 голосов
/ 08 июня 2011

Я прочитал эту статью Как загрузить плагины в .NET? , и я действительно не вижу блеска пространства имен Microsoft System.Addin. Почему у меня не может быть папки с плагинами в каталоге bin, в которую пользователи могут поместить сборку, реализующую разработанный мной интерфейс? Затем я мог бы просто использовать отражение, чтобы создать экземпляр класса плагина и ссылаться на него с помощью моего интерфейса.

Почему System.Addin намного лучше? Тем более, что это кажется в три раза больше работы и менее интуитивным дизайном.

Ответы [ 4 ]

10 голосов
/ 08 июня 2011

Я бы рекомендовал взглянуть на Managed Extensibility Framework (который был добавлен к базовой платформе в .NET 4). Он позволяет вам делать именно то, что вы описываете, и очень прост и гибок в использовании в сценариях расширяемости.

6 голосов
/ 09 июня 2011

«намного лучше» всегда зависит от вашей точки зрения и требований. Если ваш подход соответствует вашим потребностям, пойти на это. Но плагины могут стать очень быстрыми и намного более сложными. А как насчет зависимостей между плагинами? Безопасность? Разные схемы, как найти плагины? ...? Подобные функции уже решены для вас. Если они вам не нужны, библиотека может быть излишней. Если они вам нужны, было бы плохой идеей изобретать велосипед. ; -)

2 голосов
/ 08 июня 2011

Посмотрите на Microsoft Managed Extensibilty Framework ;код с открытым исходным кодом, так что вы можете использовать его как основу для написания собственного, или вы можете просто использовать MEF напрямую.

2 голосов
/ 08 июня 2011

Вы должны использовать MEF , этот вопрос от 2008

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...