Beispiel #1
0
        /// <summary>
        /// 组织模块
        /// </summary>
        /// <param name="moduleTypes"></param>
        /// <param name="descriptorBuilder"></param>
        protected virtual void OrganizationModule(IEnumerable <Type> moduleTypes, IModuleDescriptorBuilder descriptorBuilder)
        {
            try
            {
                var allModuleDescriptors = AppModuleDependencyUtil.FindAllDependedModuleDescriptors(moduleTypes, descriptorBuilder);

                SortedModuleDescriptors = SortModuleDescriptors(allModuleDescriptors).ToList().AsReadOnly();

                SortedModuleTypes     = SortedModuleDescriptors.Select(m => m.Type).ToList().AsReadOnly();
                ModuleDependencyRoots = SortedModuleDescriptors.Where(m => m.Dependents.IsNullOrEmpty()).ToList().AsReadOnly();
            }
            catch (ModularityException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ModularityException("SortModuleDescriptors Fail", ex);
            }
        }
Beispiel #2
0
 /// <summary>
 /// 排序模块描述列表
 /// </summary>
 /// <returns></returns>
 protected virtual IModuleDescriptor[] SortModuleDescriptors(IEnumerable <IModuleDescriptor> moduleDescriptors)
 {
     return(AppModuleDependencyUtil.SortModuleDescriptors(moduleDescriptors));
 }