private RoAssembly TryFindAssemblyByRaisingResolveEvent(RoAssemblyName refName) { Debug.Assert(refName != null); Assembly assembly = Resolving?.Invoke(this, refName.ToAssemblyName()); if (assembly == null) { return(new RoExceptionAssembly(new FileNotFoundException(SR.Format(SR.FileNotFoundAssembly, refName.FullName)))); } if (!(assembly is RoAssembly roAssembly && roAssembly.Loader == this)) { throw new FileLoadException(SR.ExternalAssemblyReturnedByResolveHandler); } return(roAssembly); }
/// <summary> /// Occurs On <see cref="Resolving"/> event. /// </summary> /// <param name="e"></param> /// <see cref="IProblemSolver.Resolving"/> protected virtual void OnResolving(EventArgs e) { Resolving?.Invoke(this, e); }