public List <Type> FindAll() { var allModules = new List <Type>(); var allAssemblies = AssemblyFinder.GetAllAssemblies().Distinct(); foreach (var assembly in allAssemblies) { Logger.Debug("Searching ABP modules in assembly: " + assembly.FullName); Type[] types; try { types = assembly.GetTypes(); } catch (ReflectionTypeLoadException ex) { types = ex.Types; } if (types.IsNullOrEmpty()) { continue; } var modules = (from type in types where AbpModule.IsAbpModule(type) select type).ToArray(); if (modules.IsNullOrEmpty()) { continue; } Logger.Debug("Found modules:"); foreach (var module in modules) { Logger.Debug("- " + module.FullName); } allModules.AddRange(modules); } Logger.Debug("Found " + allModules.Count + " ABP modules in total."); var currentModules = allModules.ToList(); foreach (var module in currentModules) { FillDependedModules(module, allModules); } return(allModules); }
private void LoadAll() { Logger.Debug("Loading Abp modules..."); var moduleTypes = AddMissingDependedModules(_moduleFinder.FindAll()); Logger.Debug("Found " + moduleTypes.Count + " ABP modules in total."); //Register to IOC container. foreach (var moduleType in moduleTypes) { if (!AbpModule.IsAbpModule(moduleType)) { throw new AbpInitializationException("This type is not an ABP module: " + moduleType.AssemblyQualifiedName); } if (!_iocManager.IsRegistered(moduleType)) { _iocManager.Register(moduleType); } } //Add to module collection foreach (var moduleType in moduleTypes) { var moduleObject = (AbpModule)_iocManager.Resolve(moduleType); moduleObject.IocManager = _iocManager; moduleObject.Configuration = _iocManager.Resolve <IAbpStartupConfiguration>(); _modules.Add(new AbpModuleInfo(moduleObject)); Logger.DebugFormat("Loaded module: " + moduleType.AssemblyQualifiedName); } //AbpKernelModule must be the first module //var startupModuleIndex = _modules.FindIndex(m => m.Type == typeof(AbpKernelModule<TTenantId, TUserId>)); //var startupModuleIndex = _modules.FindIndex(m => m.Type == typeof(AbpKernelModule<,>)); var startupModuleIndex = _modules.FindIndex(m => m.Type == typeof(AbpKernelModule)); if (startupModuleIndex > 0) { var startupModule = _modules[startupModuleIndex]; _modules.RemoveAt(startupModuleIndex); _modules.Insert(0, startupModule); } SetDependencies(); Logger.DebugFormat("{0} modules loaded.", _modules.Count); }
public List <Type> FindAll() { var allModules = new List <Type>(); allModules.AddRange( from assembly in AssemblyFinder.GetAllAssemblies() from type in assembly.GetTypes() where AbpModule.IsAbpModule(type) select type ); var currentModules = allModules.ToList(); foreach (var module in currentModules) { FillDependedModules(module, allModules); } return(allModules); }
private void LoadAll() { Logger.Debug("Loading Abp modules..."); var moduleTypes = AddMissingDependedModules(_moduleFinder.FindAll()); Logger.Debug("Found " + moduleTypes.Count + " ABP modules in total."); //Register to IOC container. foreach (var moduleType in moduleTypes) { if (!AbpModule.IsAbpModule(moduleType)) { throw new AbpInitializationException("This type is not an ABP module: " + moduleType.AssemblyQualifiedName); } if (!_iocManager.IsRegistered(moduleType)) { _iocManager.Register(moduleType); } } //Add to module collection foreach (var moduleType in moduleTypes) { var moduleObject = (AbpModule)_iocManager.Resolve(moduleType); moduleObject.IocManager = _iocManager; moduleObject.Configuration = _iocManager.Resolve <IAbpStartupConfiguration>(); _modules.Add(new AbpModuleInfo(moduleObject)); Logger.DebugFormat("Loaded module: " + moduleType.AssemblyQualifiedName); } EnsureKernelModuleToBeFirst(); SetDependencies(); Logger.DebugFormat("{0} modules loaded.", _modules.Count); }