private static bool ProbeForAssemblySatellite( IEnumerable <Uri> loadedUris, List <string> cultures, AssemblyName resolve, string resolveFileName, bool isLog, bool first, out Assembly resolvedAssembly) { HashSet <string> stringSet = new HashSet <string>((IEqualityComparer <string>)StringComparer.Ordinal); foreach (Uri loadedUri in loadedUris) { string localPath; if (loadedUri.IsAbsoluteUri && !string.IsNullOrEmpty(localPath = loadedUri.LocalPath)) { string loadedPath = (string)null; try { loadedPath = AssemblySatelliteResolver.NormalizePath(Path.GetDirectoryName(localPath)); } catch (Exception ex) { AssemblySatelliteResolver.log.DebugFormat("Cannot get directory path of \"{0}\". {1}", (object)localPath, (object)ex); } if (!string.IsNullOrEmpty(loadedPath) && stringSet.Add(loadedPath)) { List <string> list = cultures.Select <string, string>((Func <string, string>)(culture => Path.Combine(loadedPath, culture, resolveFileName))).Select <string, string>(new Func <string, string>(AssemblySatelliteResolver.NormalizePath)).Where <string>(new Func <string, bool>(File.Exists)).ToList <string>(); if (isLog && AssemblySatelliteResolver.log.get_IsDebugEnabled() && list.Count < 1) { AssemblySatelliteResolver.log.DebugFormat("Resolving \"{0}\" cannot find ({2}) satellite for \"{1}\"", (object)resolve, (object)loadedPath, (object)string.Join(", ", (IEnumerable <string>)cultures)); } foreach (string fullPath in list) { try { if (AssemblySatelliteResolver.LoadSatelliteByPath(resolve, fullPath, isLog, first, out resolvedAssembly)) { return(true); } } catch (Exception ex) { AssemblySatelliteResolver.log.ErrorFormat("Error resolving \"{0}\" as \"{1}\". {2}", (object)resolve, (object)fullPath, (object)ex); } } } } } resolvedAssembly = (Assembly)null; return(false); }
// Token: 0x0600003A RID: 58 RVA: 0x00003818 File Offset: 0x00001A18 private static bool ProbeForAssemblySatellite(IEnumerable <Uri> loadedUris, List <string> cultures, AssemblyName resolve, string resolveFileName, bool isLog, bool first, out Assembly resolvedAssembly) { HashSet <string> hashSet = new HashSet <string>(StringComparer.Ordinal); foreach (Uri uri in loadedUris) { string localPath; if (uri.IsAbsoluteUri && !string.IsNullOrEmpty(localPath = uri.LocalPath)) { string loadedPath = null; try { loadedPath = AssemblySatelliteResolver.NormalizePath(Path.GetDirectoryName(localPath)); } catch (Exception ex) { AssemblySatelliteResolver.log.DebugFormat("Cannot get directory path of \"{0}\". {1}", localPath, ex); } if (!string.IsNullOrEmpty(loadedPath) && hashSet.Add(loadedPath)) { List <string> list = (from culture in cultures select Path.Combine(loadedPath, culture, resolveFileName)).Select(new Func <string, string>(AssemblySatelliteResolver.NormalizePath)).Where(new Func <string, bool>(File.Exists)).ToList <string>(); if (isLog && AssemblySatelliteResolver.log.IsDebugEnabled && list.Count < 1) { AssemblySatelliteResolver.log.DebugFormat("Resolving \"{0}\" cannot find ({2}) satellite for \"{1}\"", resolve, loadedPath, string.Join(", ", cultures)); } foreach (string text in list) { try { if (AssemblySatelliteResolver.LoadSatelliteByPath(resolve, text, isLog, first, out resolvedAssembly)) { return(true); } } catch (Exception ex2) { AssemblySatelliteResolver.log.ErrorFormat("Error resolving \"{0}\" as \"{1}\". {2}", resolve, text, ex2); } } } } } resolvedAssembly = null; return(false); }