internal static List<Type> ReadTypesFromCache(string cacheName, Predicate<Type> predicate, IBuildManager buildManager, TypeCacheSerializer serializer) { try { Stream stream = buildManager.ReadCachedFile(cacheName); if (stream != null) { using (StreamReader streamReader = new StreamReader(stream)) { List<Type> list = serializer.DeserializeTypes(streamReader); if (list != null) { if (list.All((Type type) => TypeIsPublicClass(type) && predicate(type))) { return list; } } } } } catch { } return null; }