private void CreateModules(ICollection <Type> moduleTypes, List <Type> plugInModuleTypes) { foreach (var moduleType in moduleTypes) { var moduleObject = _iocManager.Resolve(moduleType) as AbpModule; if (moduleObject == null) { throw new AbpInitializationException("This type is not an ABP module: " + moduleType.AssemblyQualifiedName); } moduleObject.IocManager = _iocManager; moduleObject.Configuration = _iocManager.Resolve <IAbpStartupConfiguration>(); var moduleInfo = new AbpModuleInfo(moduleType, moduleObject, plugInModuleTypes.Contains(moduleType)); _modules.Add(moduleInfo); if (moduleType == _modules.StartupModuleType) { StartupModule = moduleInfo; } Logger.DebugFormat("Loaded module: " + moduleType.AssemblyQualifiedName); } }
public void LoadAll() { Logger.Debug("Loading Abp modules..."); _modules.Add(AbpModuleInfo.CreateForType(typeof(AbpStartupModule))); var allAssemblies = AssemblyFinder.GetAllAssemblies(); var scannedAssemlies = new List <Assembly>(); foreach (var assembly in allAssemblies) { FillModules(assembly, scannedAssemlies); } SetDependencies(); Logger.DebugFormat("{0} modules loaded.", _modules.Count); }
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); }
private void FillModules(Assembly assembly, List <Assembly> scannedAssemblies) { if (scannedAssemblies.Contains(assembly)) { return; } scannedAssemblies.Add(assembly); var referencedAssemblyNames = assembly.GetReferencedAssemblies(); foreach (var referencedAssemblyName in referencedAssemblyNames) { var referencedAssembly = Assembly.Load(referencedAssemblyName); FillModules(referencedAssembly, scannedAssemblies); } foreach (var type in assembly.GetTypes()) { //Skip types those are not Abp Module if (!AbpModuleHelper.IsAbpModule(type)) { continue; } //Prevent multiple adding same module var moduleInfo = _modules.FirstOrDefault(m => m.Type == type); if (moduleInfo == null) { moduleInfo = AbpModuleInfo.CreateForType(type); _modules.Add(moduleInfo); } //Check for depended modules var dependedModuleTypes = moduleInfo.Instance.GetDependedModules(); foreach (var dependedModuleType in dependedModuleTypes) { FillModules(dependedModuleType.Assembly, scannedAssemblies); } Logger.Debug("Loaded module: " + moduleInfo); } }
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); }