From 7f9c4e93d6a9d3dacc1718cc8800c22f4b91d8ed Mon Sep 17 00:00:00 2001 From: walon Date: Fri, 28 Jan 2022 17:58:52 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91excel?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E6=94=AF=E6=8C=81=E5=AE=9A=E4=B9=89=E5=A4=9A?= =?UTF-8?q?=E6=80=81=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs index 69be336..72c63cd 100644 --- a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs +++ b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs @@ -633,6 +633,7 @@ namespace Luban.Job.Cfg.Defs Fields = new List { new CfgField() { Name = "full_name", Type = "string" }, + new CfgField() {Name = "parent", Type = "string" }, new CfgField() { Name = "sep", Type = "string" }, new CfgField() { Name = "comment", Type = "string" }, new CfgField() { Name = "tags", Type = "string" }, @@ -662,11 +663,15 @@ namespace Luban.Job.Cfg.Defs string name = TypeUtil.GetName(fullName); if (string.IsNullOrWhiteSpace(fullName) || string.IsNullOrWhiteSpace(name)) { - throw new Exception($"file:{file.ActualFile} 定义了一个空bean类名"); + throw new Exception($"file:'{file.ActualFile}' 定义了一个空bean类名"); } string module = TypeUtil.GetNamespace(fullName); - + string parent = (data.GetField("parent") as DString).Value.Trim(); + if (parent.Contains(".") && TypeUtil.GetNamespace(parent) != module) + { + throw new Exception($"file:'{file.ActualFile}' bean:'{fullName}' parent:'{parent}' 父类命名空间必须子类的命名空间相同"); + } string sep = (data.GetField("sep") as DString).Value.Trim(); string comment = (data.GetField("comment") as DString).Value.Trim(); string tags = (data.GetField("tags") as DString).Value.Trim(); @@ -678,7 +683,7 @@ namespace Luban.Job.Cfg.Defs Sep = sep, Comment = comment, Tags = tags, - Parent = "", + Parent = parent, Fields = fields.Datas.Select(d => (DBean)d).Select(b => this.CreateField( file.ActualFile, (b.GetField("name") as DString).Value.Trim(),