Я строю проект. Это приложение, в которое пользователи могут добавлять свои расширения (файлы DLL). Для управления расширением мне нужно получить его список классов, функций и т. Д. Есть ли код для этого?
Примечание: я использую C #.
Для конкретной сборки вы можете использовать Assembly.GetTypes для получения типов, затем для каждого вызова типа Type.GetMethods(), Type.GetProperties() и т. Д. или просто Type.GetMembers().
Assembly.GetTypes
Type.GetMethods()
Type.GetProperties()
Type.GetMembers()
Однако для функциональности плагинов, как правило, хорошей идеей является наличие общего интерфейса, который должны быть реализованы плагинами - который уменьшает количество отражений, которые вам нужно использовать. Используйте Type.IsAssignableFrom(), чтобы проверить, совместим ли тип с конкретным интерфейсом.
Type.IsAssignableFrom()
Возможно, вы захотите взглянуть на Managed Extensibility Framework , который может упростить внедрение системы расширений.
Если вы говорите о создании расширяемого приложения в C #, которое загружает другие сборки и использует их содержимое для расширения приложения, то смотрите вопрос переполнения стека Система с плагинами в C # .