System.Web.Mvc.TypeCacheUtil.ReadTypesFromCache C# (CSharp) Method

ReadTypesFromCache() private method

private ReadTypesFromCache ( string cacheName, Predicate predicate, IBuildManager buildManager, TypeCacheSerializer serializer ) : List
cacheName string
predicate Predicate
buildManager IBuildManager
serializer TypeCacheSerializer
return List
        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 reader = new StreamReader(stream))
                    {
                        List<Type> deserializedTypes = serializer.DeserializeTypes(reader);
                        if (deserializedTypes != null && deserializedTypes.All(type => TypeIsPublicClass(type) && predicate(type)))
                        {
                            // If all read types still match the predicate, success!
                            return deserializedTypes;
                        }
                    }
                }
            }
            catch
            {
            }

            return null;
        }