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<Type> 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<Type> 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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…