Skip to content

Commit 31acd18

Browse files
committed
无依赖的模块加载顺序靠后
1 parent 2bb9d39 commit 31acd18

3 files changed

Lines changed: 9 additions & 1 deletion

File tree

src/Riven.Modular/Modular/IModuleDescriptor.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,11 @@ public interface IModuleDescriptor
2020
/// 实例,只创建一次
2121
/// </summary>
2222
IAppModule Instance { get; }
23+
24+
25+
/// <summary>
26+
/// 存在依赖项
27+
/// </summary>
28+
bool HasDependencies { get; }
2329
}
2430
}

src/Riven.Modular/Modular/ModuleDescriptor.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public virtual IAppModule Instance
2424
}
2525
}
2626

27+
public bool HasDependencies => this.Dependencies.Length > 0;
28+
2729
public ModuleDescriptor(Type moduleType, params IModuleDescriptor[] dependencies)
2830
{
2931
this.ModuleType = moduleType;

src/Riven.Modular/Modular/ModuleManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ protected virtual List<IModuleDescriptor> VisitModule(Type moduleType, Type pare
205205
parentDependModuleType.Clear();
206206
// 创建模块信息,内容为模块类型和依赖信息
207207
moduleDescriptors.Add(
208-
new ModuleDescriptor(moduleType, dependModuleDescriptors.ToArray())
208+
new ModuleDescriptor(moduleType, dependModuleDescriptors.OrderByDescending(o => o.HasDependencies).ToArray())
209209
);
210210

211211

0 commit comments

Comments
 (0)