private (AssemblyInformation assembly, AssemblyDefinition?monoAssembly) GetManaged(AssemblyNameReference assemblyDefinition, string baseDirectory, string extension = "dll") { if (AssembliesLoaded.TryGetValue(assemblyDefinition.Name, out var assemblyFound)) { return(assemblyFound, null); } var assemblyInfos = CreateManagedAssemblyInformation(assemblyDefinition, baseDirectory, extension); AssembliesLoaded.Add(assemblyDefinition.Name, assemblyInfos.assembly); return(assemblyInfos); }
private (AssemblyInformation assembly, Assembly?msAssembly) GetManaged(MetadataLoadContext context, AssemblyName assemblyName, string baseDirectory, string extension = "dll") { if (assemblyName.Name == null) { throw new ArgumentNullException($"No name for assembly {assemblyName.FullName}"); } if (AssembliesLoaded.TryGetValue(assemblyName.Name, out var assemblyFound)) { return(assemblyFound, null); } var(assembly, msAssembly) = CreateManagedAssemblyInformation(context, assemblyName, baseDirectory, extension); AssembliesLoaded.Add(assemblyName.Name, assembly); return(assembly, msAssembly); }
/// <summary> /// Raises the <see cref="AssembliesLoaded"/> event if someone is registered. /// </summary> protected internal void RaiseAssembliesLoaded(IEnumerable <Assembly> assemblies) { AssembliesLoaded?.Invoke(this, assemblies); }