public static List <Type> GetTypes(string type_name) { if (ImmediateWindow.m_Assemblies == null) { ImmediateWindow.PopulateAssemblyCache(); } List <Type> list = new List <Type>(); Type type = null; for (int i = 0; i < ImmediateWindow.m_Assemblies.Count; i++) { Assembly assembly = ImmediateWindow.m_Assemblies[i]; Type type2 = assembly.GetType(type_name, false, true); if (!(type2 == null)) { type = type2; break; } foreach (Type type3 in assembly.GetTypes()) { if (type3.Name.StartsWith(type_name, true, CultureInfo.InvariantCulture)) { list.Add(type3); } } } if (type != null) { list.Clear(); list.Add(type); } return(list); }