Exemplo n.º 1
0
        protected virtual void FillModules(
            List <ModuleDescriptor> modules,
            IServiceCollection services,
            Type startupModuleType,
            PlugInSourceList plugInSources)
        {
            //var logger = services.GetSingletonInstance<ILoggerFactory>().CreateLogger<ApplicationBase>();
            ILogger logger = null;

            //All modules starting from the startup module
            foreach (var moduleType in ModuleHelper.FindAllModuleTypes(startupModuleType, logger))
            {
                modules.Add(CreateModuleDescriptor(services, moduleType));
            }

            //Plugin modules
            foreach (var moduleType in plugInSources.GetAllModules(logger))
            {
                if (modules.Any(m => m.Type == moduleType))
                {
                    continue;
                }

                modules.Add(CreateModuleDescriptor(services, moduleType, isLoadedAsPlugIn: true));
            }
        }
Exemplo n.º 2
0
    public static Type[] GetModulesWithAllDependencies([NotNull] this IPlugInSource plugInSource, ILogger logger)
    {
        Check.NotNull(plugInSource, nameof(plugInSource));

        return(plugInSource
               .GetModules()
               .SelectMany(type => ModuleHelper.FindAllModuleTypes(type, logger))
               .Distinct()
               .ToArray());
    }