public override void SerializeExt(Serializer writer) { base.SerializeExt(writer); writer.BeforeWriteData((ushort)ETypeId.TestClassBase); int initPos = writer.Position; int tableLen = 4 + 1; var offsetTable = writer.GetOffsetTable(tableLen); offsetTable[0] = writer.Position; if (val0 != 0) { writer.Write(val0); } else { offsetTable[0] = 0; } offsetTable[2] = writer.Position; if (val2 != 0) { writer.Write(val2); } else { offsetTable[2] = 0; } offsetTable[3] = writer.Position; if (val3 != false) { writer.Write(val3); } else { offsetTable[3] = 0; } offsetTable[4] = writer.Position; if (val4 != null) { writer.Write(val4); } else { offsetTable[4] = 0; } //offsetTable[4] = writer.Position;if (val5 != null) writer.Write(val5);else{offsetTable[4] = 0;} writer.AfterWriteData(tableLen, offsetTable, initPos); }