Компонент .NET как плагин
Рассмотрим, как можно использовать инструментарий .NET Framework для решения такой задачи: создание расширяемой за счет плагинов (подгружаемых dll) программной системы.
Решение основано на инструментах, собранных в пространстве имен System::Reflection. Вкратце алгоритм использования плагинов такой.
1. Просматриваем каталог (текущий или назначенный) в поисках файлов с расширением DLL.
2. Каждый найденный DLL файл пытаемся загрузить как сборку .NET (assembly).
3. Если загрузка удалась, то начинаем исследовать классы, объявленные в сборке. Используем средства .NET Reflection. Для каждого класса выделяем список его полей. Ищем метод с именем Get_Plugin_Type - он должен вернуть название плагина. Если такой метод найден и вернул строку, то значит мы загрузили плагин - заносим его в список.
4. Когда необходимо обработать файл с помощью зарегистрированных плагинов, просматриваем список и у каждого плагина вызываем метод Can_Process_File - он получает имя файла и возвращает true, если может обработать файл. Тогда вызываем метод Go.
Скачать исходные тексты
Проект для MS VisualStudio 2003 (13 Kb)
© Mental Computing 2009