示例#1
0
        public static bool IsErrorFromMissingAssembly(ITypeResolver typeResolver, XamlParseError parseError)
        {
            if (parseError.ErrorCode == 8 && parseError.Parameters.Count == 2)
            {
                string mapping      = parseError.Parameters[0];
                string clrNamespace = (string)null;
                string assemblyName = (string)null;
                if (XamlParser.TryParseClrNamespaceUri(mapping, out clrNamespace, out assemblyName))
                {
                    IAssembly assembly = assemblyName != null?typeResolver.GetAssembly(assemblyName) : typeResolver.ProjectAssembly;

                    if (assembly != null && !assembly.IsLoaded)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
示例#2
0
        private IAssembly GetAssembly(ITypeResolver typeResolver, string assemblyName)
        {
            IAssembly assembly = null;

            if (!string.IsNullOrEmpty(assemblyName))
            {
                assembly = typeResolver.GetAssembly(assemblyName);
            }
            else
            {
                assembly     = typeResolver.ProjectAssembly;
                assemblyName = "__Blend_Unknown_Assembly";
            }
            if (assembly == null)
            {
                assembly = ((IPlatformTypes)this.PlatformMetadata).CreateAssembly(assemblyName);
            }
            return(assembly);
        }