Лучший способ создать среду плагина в .NET.

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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