fix(generator): 解决重复引用路径生成成员名称不稳定问题

- 使用 TryGetValue 方法替代 ContainsKey 检查避免多次访问字典
- 重用跟踪的重复计数确保重复引用路径保持生成的成员名称稳定
- 修复重复计数递增逻辑确保正确的序号生成
- 简化重复计数器的使用方式提高代码可读性
- 移除文件末尾多余空行保持代码整洁
This commit is contained in:
GeWuYou 2026-04-05 13:44:31 +08:00
parent 8c9fbb39b2
commit 34a333a0c1

View File

@ -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
{