Пример #1
0
        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);
 }