Skip to content

Commit eec8820

Browse files
committed
[增加]1. 增加字段标记的重复判断
1 parent 0ce39a4 commit eec8820

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

ProtoExport/MessageHelper.cs

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ private static void ParseEnum(string proto, string packageName, List<MessageInfo
163163

164164
field.Type = name;
165165
field.Members = int.Parse(fieldSplit[1].Replace(";", "").Trim());
166+
if (!CheckVerifyMember(info.Fields, field.Members))
167+
{
168+
throw new Exception("[" + packageName + "] 包的 [" + name + "] 消息序列发生重复");
169+
}
166170
}
167171
}
168172
}
@@ -208,7 +212,13 @@ private static void ParseMessage(string proto, string packageName, List<MessageI
208212
var fieldSplit = lineSplit[0].Split('=', StringSplitOptions.RemoveEmptyEntries);
209213
if (fieldSplit.Length > 1)
210214
{
211-
field.Members = int.Parse(fieldSplit[1].Replace(";", "").Trim());
215+
var members = int.Parse(fieldSplit[1].Replace(";", "").Trim());
216+
if (!CheckVerifyMember(info.Fields, members))
217+
{
218+
throw new Exception("[" + packageName + "] 包的 [" + messageName + "] 消息序列发生重复");
219+
}
220+
221+
field.Members = members;
212222
}
213223

214224
if (fieldSplit.Length > 0)
@@ -271,4 +281,23 @@ private static void ParseMessage(string proto, string packageName, List<MessageI
271281
}
272282
}
273283
}
284+
285+
/// <summary>
286+
/// 检查tag 是否验证通过
287+
/// </summary>
288+
/// <param name="info"></param>
289+
/// <param name="members"></param>
290+
/// <returns></returns>
291+
static bool CheckVerifyMember(List<MessageMember> info, int members)
292+
{
293+
foreach (var messageMember in info)
294+
{
295+
if (messageMember.Members == members)
296+
{
297+
return false;
298+
}
299+
}
300+
301+
return true;
302+
}
274303
}

0 commit comments

Comments
 (0)