ICSharpCode.ILSpy.LoadedAssembly.LookupReferencedAssemblyInternal C# (CSharp) Method

LookupReferencedAssemblyInternal() private method

private LookupReferencedAssemblyInternal ( string fullName ) : LoadedAssembly
fullName string
return LoadedAssembly
		LoadedAssembly LookupReferencedAssemblyInternal(string fullName)
		{
			foreach (LoadedAssembly asm in assemblyList.GetAssemblies()) {
				if (asm.AssemblyDefinition != null && fullName.Equals(asm.AssemblyDefinition.FullName, StringComparison.OrdinalIgnoreCase))
					return asm;
			}
			if (assemblyLoadDisableCount > 0)
				return null;
			
//			if (!App.Current.Dispatcher.CheckAccess()) {
//				// Call this method on the GUI thread.
//				return (LoadedAssembly)App.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Func<string, LoadedAssembly>(LookupReferencedAssembly), fullName);
//			}
			
			var name = AssemblyNameReference.Parse(fullName);
			string file = null; // GacInterop.FindAssemblyInNetGac(name);
			if (file == null) {
				string dir = Path.GetDirectoryName(this.fileName);
				if (File.Exists(Path.Combine(dir, name.Name + ".dll")))
					file = Path.Combine(dir, name.Name + ".dll");
				else if (File.Exists(Path.Combine(dir, name.Name + ".exe")))
					file = Path.Combine(dir, name.Name + ".exe");
			}
			if (file != null) {
				var loaded = assemblyList.OpenAssembly(file, true);
				return loaded;
			} else {
				return null;
			}
		}