ExternalAssembly load(TypeReference type) { var asmFullName = DotNetUtils.getFullAssemblyName(type); ExternalAssembly asm; if (assemblies.TryGetValue(asmFullName, out asm)) { return(asm); } AssemblyDefinition asmDef = null; try { asmDef = AssemblyResolver.Instance.Resolve(asmFullName); } catch (ResolutionException) { } catch (AssemblyResolutionException) { } if (asmDef == null) { if (!failedLoads.ContainsKey(asmFullName)) { Log.w("Could not load assembly {0}", asmFullName); } failedLoads[asmFullName] = true; return(null); } if (assemblies.ContainsKey(asmDef.Name.FullName)) { assemblies[asmFullName] = assemblies[asmDef.Name.FullName]; return(assemblies[asmDef.Name.FullName]); } if (asmFullName == asmDef.Name.FullName) { Log.v("Loaded assembly {0}", asmFullName); } else { Log.v("Loaded assembly {0} (but wanted {1})", asmDef.Name.FullName, asmFullName); } asm = new ExternalAssembly(asmDef); assemblies[asmFullName] = asm; assemblies[asmDef.Name.FullName] = asm; return(asm); }
ExternalAssembly load(TypeReference type) { var asmFullName = DotNetUtils.getFullAssemblyName(type); ExternalAssembly asm; if (assemblies.TryGetValue(asmFullName, out asm)) return asm; AssemblyDefinition asmDef = null; try { asmDef = AssemblyResolver.Instance.Resolve(asmFullName); } catch (ResolutionException) { } catch (AssemblyResolutionException) { } if (asmDef == null) { if (!failedLoads.ContainsKey(asmFullName)) Log.w("Could not load assembly {0}", asmFullName); failedLoads[asmFullName] = true; return null; } if (assemblies.ContainsKey(asmDef.Name.FullName)) { assemblies[asmFullName] = assemblies[asmDef.Name.FullName]; return assemblies[asmDef.Name.FullName]; } if (asmFullName == asmDef.Name.FullName) Log.v("Loaded assembly {0}", asmFullName); else Log.v("Loaded assembly {0} (but wanted {1})", asmDef.Name.FullName, asmFullName); asm = new ExternalAssembly(asmDef); assemblies[asmFullName] = asm; assemblies[asmDef.Name.FullName] = asm; return asm; }
ExternalAssembly load(TypeReference type) { var asmFullName = DotNetUtils.getFullAssemblyName(type); ExternalAssembly asm; if (assemblies.TryGetValue(asmFullName, out asm)) return asm; AssemblyDefinition asmDef = null; try { asmDef = GlobalAssemblyResolver.Instance.Resolve(asmFullName); } catch (ResolutionException) { } catch (AssemblyResolutionException) { } if (asmDef == null) { // If we can't load it now, we can't load it later. Make sure above code returns null. assemblies[asmFullName] = null; Log.w("Could not load assembly {0}", asmFullName); return null; } if (assemblies.ContainsKey(asmDef.Name.FullName)) { assemblies[asmFullName] = assemblies[asmDef.Name.FullName]; return assemblies[asmDef.Name.FullName]; } if (asmFullName == asmDef.Name.FullName) Log.v("Loaded assembly {0}", asmFullName); else Log.v("Loaded assembly {0} (but wanted {1})", asmDef.Name.FullName, asmFullName); asm = new ExternalAssembly(asmDef); assemblies[asmFullName] = asm; assemblies[asmDef.Name.FullName] = asm; return asm; }