From 34a333a0c10e3e42c557797cca5dc0fdab1b49ec Mon Sep 17 00:00:00 2001 From: GeWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Sun, 5 Apr 2026 13:44:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(generator):=20=E8=A7=A3=E5=86=B3=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E5=BC=95=E7=94=A8=E8=B7=AF=E5=BE=84=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=88=90=E5=91=98=E5=90=8D=E7=A7=B0=E4=B8=8D=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 TryGetValue 方法替代 ContainsKey 检查避免多次访问字典 - 重用跟踪的重复计数确保重复引用路径保持生成的成员名称稳定 - 修复重复计数递增逻辑确保正确的序号生成 - 简化重复计数器的使用方式提高代码可读性 - 移除文件末尾多余空行保持代码整洁 --- .../Config/SchemaConfigGenerator.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/GFramework.SourceGenerators/Config/SchemaConfigGenerator.cs b/GFramework.SourceGenerators/Config/SchemaConfigGenerator.cs index c77bebaa..7ee0770f 100644 --- a/GFramework.SourceGenerators/Config/SchemaConfigGenerator.cs +++ b/GFramework.SourceGenerators/Config/SchemaConfigGenerator.cs @@ -939,11 +939,13 @@ public sealed class SchemaConfigGenerator : IIncrementalGenerator foreach (var referenceSeed in EnumerateReferenceSeeds(rootObject.Properties)) { var baseMemberName = BuildReferenceMemberName(referenceSeed.DisplayPath); - if (memberNameCounts.ContainsKey(baseMemberName)) + if (memberNameCounts.TryGetValue(baseMemberName, out var duplicateCount)) { - memberNameCounts[baseMemberName]++; + // Reuse the tracked duplicate count so repeated reference paths keep their generated member names stable. + duplicateCount++; + memberNameCounts[baseMemberName] = duplicateCount; baseMemberName = - $"{baseMemberName}{memberNameCounts[baseMemberName].ToString(CultureInfo.InvariantCulture)}"; + $"{baseMemberName}{duplicateCount.ToString(CultureInfo.InvariantCulture)}"; } else {