ryudice ryudice - 2 months ago 8x
C# Question

How to get all classes in current project using reflection?

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


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);