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);
        }