[opt] 优化配置中错误创建了抽象类型时的错误提示

main
walon 2022-04-06 17:14:15 +08:00
parent 142e3ddf93
commit f7814a0612
2 changed files with 17 additions and 1 deletions

View File

@ -245,7 +245,7 @@ namespace Luban.Job.Cfg.Utils
{
throw new Exception($"module:'{bean.Namespace}' 多态数据type不能为空");
}
DefBean defType = bean.HierarchyNotAbstractChildren.Cast<DefBean>().Where(c => c.Alias == subType || c.Name == subType || c.FullName == subType).FirstOrDefault();
DefBean defType = bean.GetHierarchyChildren().Cast<DefBean>().Where(c => c.Alias == subType || c.Name == subType || c.FullName == subType).FirstOrDefault();
if (defType == null)
{
throw new Exception($"module:'{bean.Namespace}' type:'{subType}' 不是合法类型");

View File

@ -24,6 +24,22 @@ namespace Luban.Job.Common.Defs
public List<DefBeanBase> HierarchyNotAbstractChildren { get; set; }
public IEnumerable<DefBeanBase> GetHierarchyChildren()
{
yield return this;
if (Children == null)
{
yield break;
}
foreach (var child in Children)
{
foreach(var c2 in child.GetHierarchyChildren())
{
yield return c2;
}
}
}
public bool IsNotAbstractType => Children == null;
public bool IsAbstractType => Children != null;