Esempio n. 1
0
        private static IEnumerable <Assembly> GetReferencedAssemblies(IAssemblyFinder finder, Type type)
        {
            MicroStrutLibraryExceptionHelper.IsNull(finder, typeof(ReflectionHelper).FullName, LogLevel.Error, "类型查找器为空!");
            MicroStrutLibraryExceptionHelper.IsNull(type, typeof(ReflectionHelper).FullName, LogLevel.Error, "类型为空!");

            Assembly typeAssembly = type.GetTypeInfo().Assembly;

            return(finder.GetAssemblies().Where(assembly =>
            {
                if (assembly.IsDynamic)
                {
                    return false;
                }

                if (assembly.FullName == typeAssembly.FullName)
                {
                    return true;
                }

                return assembly.GetReferencedAssemblies().Any(assemblyName =>
                {
                    return assemblyName.FullName == typeAssembly.FullName;
                });
            }));
        }
Esempio n. 2
0
 /// <summary>
 /// Gets tne assemblies related to the current implementation.
 /// </summary>
 /// <returns>A list of assemblies that should be loaded.</returns>
 /// <remarks></remarks>
 public virtual IList <Assembly> GetAssemblies()
 {
     return(_assemblyFinder.GetAssemblies());
 }