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