diff --git a/src/Luban.Job.Common/Source/Defs/DefAssemblyBase.cs b/src/Luban.Job.Common/Source/Defs/DefAssemblyBase.cs index b8fd41a..233a692 100644 --- a/src/Luban.Job.Common/Source/Defs/DefAssemblyBase.cs +++ b/src/Luban.Job.Common/Source/Defs/DefAssemblyBase.cs @@ -34,7 +34,11 @@ namespace Luban.Job.Common.Defs public Dictionary Types { get; } = new Dictionary(); - private readonly Dictionary _notCaseSenceTypes = new (); + private readonly Dictionary _notCaseSenseTypes = new (); + + private readonly HashSet _namespaces = new(); + + private readonly Dictionary _notCaseSenseNamespaces = new(); public IAgent Agent { get; protected set; } @@ -178,10 +182,17 @@ namespace Luban.Job.Common.Defs throw new Exception($"type:'{fullName}' duplicate"); } - if (!_notCaseSenceTypes.TryAdd(fullName.ToLower(), type)) + if (!_notCaseSenseTypes.TryAdd(fullName.ToLower(), type)) { - throw new Exception($"type:'{fullName}' 和 type:'{_notCaseSenceTypes[fullName.ToLower()].FullName}' 类名小写重复. 在win平台有问题"); + throw new Exception($"type:'{fullName}' 和 type:'{_notCaseSenseTypes[fullName.ToLower()].FullName}' 类名小写重复. 在win平台有问题"); } + + string namespaze = type.Namespace; + if (_namespaces.Add(namespaze) && !_notCaseSenseNamespaces.TryAdd(namespaze.ToLower(), type)) + { + throw new Exception($"type:'{fullName}' 和 type:'{_notCaseSenseNamespaces[namespaze.ToLower()].FullName}' 命名空间小写重复. 在win平台有问题,请修改定义并删除生成的代码目录后再重新生成"); + } + Types.Add(fullName, type); }