How can I list all the classes in my current project(assembly?) using reflection? thanks.
            Asked
            
        
        
            Active
            
        
            Viewed 1.4k times
        
    3 Answers
20
            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
        
- 225,310
 - 48
 - 427
 - 736