程序集中的类列表

Rah*_*ain 5 .net vb.net reflection .net-assembly

我有一个DLL程序集,其中有各种类.每个班级有大约50-100名成员和4-5个职能.如何使用VB.NET程序创建所有类及其各自成员的列表?

我需要向用户显示使用特定类执行操作.

ama*_*int 16

假设您已将程序集加载到thisAsm(在此前我使用的是执行程序集),

这将为您提供所有非抽象类:

Assembly thisAsm = Assembly.GetExecutingAssembly();
List<Type> types = thisAsm.GetTypes().Where(t => t.IsClass && !t.IsAbstract).ToList();
Run Code Online (Sandbox Code Playgroud)

这将为您提供实现特定接口的所有类.

(例如.如果你只需要获得实现IYourInterface的类,那么)

Assembly thisAsm = Assembly.GetExecutingAssembly();
List<Type> types = thisAsm.GetTypes().Where
            (t => ((typeof(IYourInterface).IsAssignableFrom(t) 
                 && t.IsClass && !t.IsAbstract))).ToList();
Run Code Online (Sandbox Code Playgroud)

获得此项列表后,可以通过在类型列表的每个成员上调用GetProperties()和GetMethods()来显示每种类型的成员.


lar*_*rsw 2

请参阅System.Reflection.Assembly.GetTypes()System.Type.GetMembers()的文档

--larsw

  • -1 表示不包含链接之外的任何解释。 (7认同)