У меня есть блок DLL, в котором существуют различные классы. Каждый класс имеет приблизительно 50-100 участников и 4-5 функций. Как я могу создать список всех классов и их соответствующих участников, использующих программу VB.NET?
Я должен показать пользователю для выполнения операции с помощью конкретного класса.
См. документацию для Системы. Отражение. Блок. GetTypes () и Система. Ввести. GetMembers ()
- larsw
Предположение, что Вам загрузили Ваш блок в thisAsm (в этом исключая я использую выполняющийся блок),
Это получит Вас всех не абстрактные классы:
Assembly thisAsm = Assembly.GetExecutingAssembly();
List<Type> types = thisAsm.GetTypes().Where(t => t.IsClass && !t.IsAbstract).ToList();
И это получит Вас всех классы, который реализует определенный интерфейс.
(Например, Если необходимо получить только классы, который реализует IYourInterface, затем),
Assembly thisAsm = Assembly.GetExecutingAssembly();
List<Type> types = thisAsm.GetTypes().Where
(t => ((typeof(IYourInterface).IsAssignableFrom(t)
&& t.IsClass && !t.IsAbstract))).ToList();
После того как у Вас есть этот список объектов, можно показать членам каждого типа путем вызова GetProperties () и GetMethods () на каждом члене списка типов.