List of classes in an assembly

前端 未结 5 1389
暗喜
暗喜 2020-12-11 19:24

I\'ve a DLL assembly, in which there are various classes. Each class has around 50-100 members and 4-5 functions. How can I create a list of all the classes and their respec

5条回答
  •  一向
    一向 (楼主)
    2020-12-11 19:55

    Assuming that you've your assembly loaded to thisAsm (in this ex I'm using the executing assembly),

    This will get you all non abstract classes:

    Assembly thisAsm = Assembly.GetExecutingAssembly();
    List types = thisAsm.GetTypes().Where(t => t.IsClass && !t.IsAbstract).ToList();
    

    And this will get you all classes that implements a specific interface.

    (Eg. If you need to get only the classes that implements IYourInterface, then)

    Assembly thisAsm = Assembly.GetExecutingAssembly();
    List types = thisAsm.GetTypes().Where
                (t => ((typeof(IYourInterface).IsAssignableFrom(t) 
                     && t.IsClass && !t.IsAbstract))).ToList();
    

    Once you've this list of items, you can show the members of each type, by calling the GetProperties() and GetMethods() on each member of the types list.

提交回复
热议问题