diff --git a/src/Luban.Job.Cfg/Source/Defs/DefBean.cs b/src/Luban.Job.Cfg/Source/Defs/DefBean.cs index 6b19972..afe5a3f 100644 --- a/src/Luban.Job.Cfg/Source/Defs/DefBean.cs +++ b/src/Luban.Job.Cfg/Source/Defs/DefBean.cs @@ -158,9 +158,9 @@ namespace Luban.Job.Cfg.Defs return null; } - public override void PreCompile() + private void SetUpParent() { - if (!string.IsNullOrEmpty(Parent)) + if (ParentDefType == null && !string.IsNullOrEmpty(Parent)) { if ((ParentDefType = (DefBean)AssemblyBase.GetDefType(Namespace, Parent)) == null) { @@ -171,7 +171,13 @@ namespace Luban.Job.Cfg.Defs ParentDefType.Children = new List(); } ParentDefType.Children.Add(this); + ((DefBean)ParentDefType).SetUpParent(); } + } + + public override void PreCompile() + { + SetUpParent(); CollectHierarchyFields(HierarchyFields);