tags:

views:

159

answers:

3

How can I list all the classes in my current project(assembly?) using reflection? thanks.

+1  A: 

Have a look at the Assembly.GetTypes method.

Gregory Pakosz
+6  A: 

Given an instance a of System.Reflection.Assembly, you can get all types in the assembly using:

var allTypes = a.GetTypes();

This will give you all types, public, internal and private.

If you want only the public types, you can use:

var publicTypes = a.GetExportedTypes();

If you are running this code from within the Assembly itself, you can get the assembly using

var a = Assembly.GetExecutingAssembly();

GetTypes and GetExportedTypes will give you all types (structs, classes, enums, interfaces etc.) so if you want only classes you will have to filter

var classes = a.GetExportedTypes().Where(t => t.IsClass);
Mark Seemann
Thanks, that did it
ryudice
+1  A: 

Yes, you use the Assembly.GetTypes method.

Nick