> > static void Main() > { > > var list = GetAssemblyClasses("GregoryAdam.Base"); > > foreach (var className in list) > { > Console.WriteLine("{0} : {1}", className.IsClass ? "Class" : "Struct", className.FullName); > } > Console.ReadLine(); > > } > public static List<Type> GetAssemblyClasses(string assemblyName) > { > var assembly = Assembly.Load(assemblyName); > > List<Type> classList = new List<Type>(); > > > foreach (var module in assembly.GetModules()) > { > > foreach (var type in module.GetTypes()) > { > // only interested in classes or struct > if (!type.IsClass ) // && !type.IsValueType) > continue; > > classList.Add(type); > } > } > > return classList; > } > > } >or:
var list = (from m in Assembly.Load("GregoryAdam.Base").GetModules() select m.GetTypes().Where(x=>x.IsClass)).ToList();Not as flat though :={