List<IEnumerable<Type>> list = >>>> (from m in Assembly.Load(Assemblyname).GetModules() select m.GetTypes().Where(x => x.IsClass)).ToList(); >>>> >>>>foreach ( IEnumerable<Type> t in list) >>>> { >>>> foreach (Type className in t) >>>> { >>>> Console.WriteLine("{0}", className.FullName); >>>> } >>>> }>>>
public static List<Type> GetAssemblyClasses(string assemblyName) >> { >> var assembly = Assembly.Load(assemblyName); >> List<Type> classList = new List<Type>(); >> >> foreach (var module in assembly.GetModules()) >> { >> classList.AddRange(from x in module.GetTypes().Where(x => x.IsClass) select x); >> } >> return classList; >> }>
> public static List<Type> GetAssemblyClasses(string assemblyName) > { > var assembly = Assembly.Load(assemblyName); > > List<Type> classList = new List<Type>(); > foreach (var module in assembly.GetModules()) > { > classList.AddRange(module.FindTypes(new TypeFilter(delegate(Type t, object o) { return t.IsClass; }), null)); > } > > return classList; > } >Ah - I didn't know the FindType() method was there. I even see there's a ready built TypeFilter for name ......