I have a generic class in my project with derived classes.
public class GenericClass : GenericInterface
{
}
public class Test : GenericCla
This can all be done easily with linq. This will find any types that are a subclass of generic base class GenericBaseType.
IEnumerable allTypes = Assembly.GetExecutingAssembly().GetTypes();
IEnumerable mySubclasses = allTypes.Where(t => t.BaseType != null
&& t.BaseType.IsGenericType
&& t.BaseType.GetGenericTypeDefinition() == typeof(GenericBaseType<,>));