private List <IAbpModuleDescriptor> GetDescriptors( IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources) { var modules = new List <AbpModuleDescriptor>(); FillModules(modules, services, startupModuleType, plugInSources); SetDependencies(modules); return(modules.Cast <IAbpModuleDescriptor>().ToList()); }
public IAbpModuleDescriptor[] LoadModules( IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources) { Check.NotNull(services, nameof(services)); Check.NotNull(startupModuleType, nameof(startupModuleType)); Check.NotNull(plugInSources, nameof(plugInSources)); var modules = GetDescriptors(services, startupModuleType, plugInSources); modules = SortByDependency(modules, startupModuleType); return(modules.ToArray()); }
protected virtual void FillModules( List <AbpModuleDescriptor> modules, IServiceCollection services, Type startupModuleType, PlugInSourceList plugInSources) { //All modules starting from the startup module foreach (var moduleType in AbpModuleHelper.FindAllModuleTypes(startupModuleType)) { modules.Add(CreateModuleDescriptor(services, moduleType)); } //Plugin modules foreach (var moduleType in plugInSources.GetAllModules()) { if (modules.Any(m => m.Type == moduleType)) { continue; } modules.Add(CreateModuleDescriptor(services, moduleType, isLoadedAsPlugIn: true)); } }