Получить список функций для DLL - PullRequest
1 голос
/ 01 июня 2009

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

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

Ответы [ 2 ]

13 голосов
/ 01 июня 2009

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

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

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

0 голосов
/ 01 июня 2009

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

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