private string GenFileCsCode(ProtoField field) { var arraryTemplate = @" /// <summary> /// [NOTE] /// </summary> public List<[TYPE]> [NAME] { set; get; }"; string template = @" /// <summary> /// [NOTE] /// </summary> public [TYPE] [NAME] { set; get; }"; var resultType = string.Empty; switch (field.Type) { case ProtoTypes.STRING: resultType = "string"; break; case ProtoTypes.INT_32: resultType = "int"; break; case ProtoTypes.BOOL: resultType = "bool"; break; case ProtoTypes.BYTE: resultType = "byte"; break; case ProtoTypes.CHAR: resultType = "char"; break; case ProtoTypes.FLOAT: resultType = "float"; break; case ProtoTypes.SHORT: resultType = "short"; break; case ProtoTypes.INT_64: resultType = "long"; break; default: resultType = field.Type; break; } var resultTemplate = field.IsArray ? arraryTemplate : template; var code = resultTemplate.Replace("[NOTE]", field.Note) .Replace("[TYPE]", resultType).Replace("[NAME]", field.Name); return(code); }
private string GenFieldBwCode(ProtoField field) { if (field.IsArray) { var arrayTemplate = @" writer.Write([NAME].Count); foreach(var i in [NAME]) { [CODE] }".Replace("[NAME]", field.Name); return(arrayTemplate.Replace("[CODE]", " " + WriteField("i", field.Type))); } else { return(" " + WriteField(field.Name, field.Type)); } }
public string GenFieldBrCode(ProtoField field) { if (field.IsArray) { var arrayTemp = @" int [NAME]_Len = reader.ReadInt32(); while([NAME]_Len-->0) { [DEFINE] [READER] [NAME].Add([NAME]_Temp ); }".Replace("[NAME]", field.Name); var type = field.Type; var name = "[NAME]_Temp".Replace("[NAME]", field.Name); arrayTemp = arrayTemp.Replace("[DEFINE]", " " + DefineField(name, field.Type)); arrayTemp = arrayTemp.Replace("[READER]", " " + ReadField(name, type)); return(arrayTemp); } else { return(" " + ReadField(field.Name, field.Type)); } }
public void AddField(ProtoField field) { Fields.Add(field); }