2009-06-01 2 views
1

Я строю проект. Это приложение, к которому пользователи могут добавлять свои расширения (файлы DLL). Чтобы управлять расширением, мне нужно получить его список классов, функций и т. Д. Есть ли код для этого?Получить список функций для DLL

Примечание: Я использую C#.

ответ

12

Для конкретной сборки, вы можете использовать Assembly.GetTypes для получения типов, то для каждого типа вызова Type.GetMethods(), Type.GetProperties() и т.д., или просто Type.GetMembers().

Однако для функциональности плагинов обычно рекомендуется иметь общий интерфейс, который должны реализовывать плагины, что уменьшает объем отражения, который вам нужно использовать. Используйте Type.IsAssignableFrom(), чтобы проверить, совместим ли тип с конкретным интерфейсом.

Возможно, вы также захотите посмотреть на Managed Extensibility Framework, который может упростить внедрение системы расширения.

+0

+1 on Глядя на MEF –

0

Если вы говорите о создании расширяемого приложения в C#, которая загружает другие сборки и использует их содержимое для расширения приложения, а затем увидеть переполнение стека вопроса System with plugins in C#.

Смежные вопросы