Beispiel #1
0
 public void SetDependencies(List <CoreModuleDescriptor> modules)
 {
     foreach (var dependedModuleType in CoreModuleHelper.FindDependedModuleTypes(ModuleType))
     {
         var dependedModule = modules.FirstOrDefault(m => m.ModuleType == dependedModuleType);
         if (dependedModule == null)
         {
             throw new Exception("Could not find a depended module " + dependedModuleType.AssemblyQualifiedName + " for " + ModuleType.AssemblyQualifiedName);
         }
         _dependencies.Add(dependedModule);
     }
 }
        private List <CoreModuleDescriptor> CreateCoreModuleDescriptors(IServiceCollection services, Type startupModuleType)
        {
            var coreModuleDescriptors = new List <CoreModuleDescriptor>();
            var allModules            = CoreModuleHelper.FindAllModuleTypes(startupModuleType);
            var serviceProvider       = services.BuildServiceProvider();

            foreach (var moduleType in allModules)
            {
                var instance = (ICoreModule)ActivatorUtilities.CreateInstance(serviceProvider, moduleType);
                coreModuleDescriptors.Add(new CoreModuleDescriptor(moduleType, instance));
            }
            foreach (var coreModuleDescriptor in coreModuleDescriptors)
            {
                coreModuleDescriptor.SetDependencies(coreModuleDescriptors);
            }
            return(coreModuleDescriptors);
        }