private void readArray(VO entity) { int identity = memoryStream.ReadByte(); int itemClazzIdentifer = readByte2(); ArrayList array = new ArrayList(); bool loop = true; long endIndex = memoryStream.Length - 1; int dataType = 0; while (loop && memoryStream.Position <= endIndex) { dataType = memoryStream.ReadByte(); if (dataType == (int)DataType.Object) { string clazzName = VoIdentiferMap [itemClazzIdentifer]; readObject(array, null); } else if (dataType == (int)DataType.Array) { // readArray (); continue; //暂不支持数组嵌套 } else if (dataType == (int)DataType.Int32 || dataType == (int)DataType.Int16 || dataType == (int)DataType.UInt8 || dataType == (int)DataType.UInt16 || dataType == (int)DataType.UInt32 || dataType == (int)DataType.Double || dataType == (int)DataType.Long || dataType == (int)DataType.Float || dataType == (int)DataType.Boolean) { readPrimitive(array, dataType); } else if (dataType == (int)DataType.StringShort) { readStringShort(array); } else if (dataType == (int)DataType.String) { readString(array); } else if (dataType == (int)DataType.StringLong) { readStringLong(array); } else if (dataType == (int)DataType.Split) { loop = false; } } entity.setVarValue((byte)identity, array); }