public static XamlAstClrTypeReference ResolveType(AstTransformationContext context, string xmlns, string name, bool isMarkupExtension, List <XamlAstXmlTypeReference> typeArguments, IXamlLineInfo lineInfo, bool strict) { if (typeArguments == null || typeArguments.Count == 0) { var cache = context.GetOrCreateItem <TypeResolverCache>(); var cacheKey = (xmlns, name, isMarkupExtension); if (cache.CacheDictionary.TryGetValue(cacheKey, out var type)) { if (type == null) { return(null); } return(new XamlAstClrTypeReference(lineInfo, type, isMarkupExtension)); } var res = ResolveTypeCore(context, xmlns, name, isMarkupExtension, typeArguments, lineInfo, strict); cache.CacheDictionary[cacheKey] = res?.Type; return(res); } else { return(ResolveTypeCore(context, xmlns, name, isMarkupExtension, typeArguments, lineInfo, strict)); } }