public Assembly Load(AssemblyName assemblyName, IAssemblyLoadContext loadContext) { // An assembly name like "MyLibrary!alternate!more-text" // is parsed into: // name == "MyLibrary" // aspect == "alternate" // and the more-text may be used to force a recompilation of an aspect that would // otherwise have been cached by some layer within Assembly.Load var name = assemblyName.Name; string aspect = null; var parts = name.Split(new[] { '!' }, 3); if (parts.Length != 1) { name = parts[0]; aspect = parts[1]; } Project project; if (!_projectResolver.TryResolveProject(name, out project)) { return(null); } return(_compilationEngine.LoadProject( project, aspect, loadContext)); }
public Assembly Load(AssemblyName assemblyName, IAssemblyLoadContext loadContext) { // An assembly name like "MyLibrary!alternate!more-text" // is parsed into: // name == "MyLibrary" // aspect == "alternate" // and the more-text may be used to force a recompilation of an aspect that would // otherwise have been cached by some layer within Assembly.Load var name = assemblyName.Name; string aspect = null; var parts = name.Split(new[] { '!' }, 3); if (parts.Length != 1) { name = parts[0]; aspect = parts[1]; } if (!string.IsNullOrEmpty(assemblyName.CultureName) && Path.GetExtension(name).Equals(".resources", StringComparison.OrdinalIgnoreCase)) { name = Path.GetFileNameWithoutExtension(name); } RuntimeProject project; if (!_projects.TryGetValue(name, out project)) { return(null); } return(_compilationEngine.LoadProject( project.Project, project.Framework, aspect, loadContext, assemblyName, _configuration)); }