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