Esempio n. 1
0
        /// <summary>
        /// Reads the array.
        /// </summary>
        /// <param name="abstractHessianInput">HessianInput</param>
        /// <param name="intLength">Length of data</param>
        /// <returns>Array data</returns>
        public override Object ReadList(AbstractHessianInput abstractHessianInput, int intLength)
        {
            if (intLength >= 0)
            {
                Object[] arrResult = createArray(intLength);

                abstractHessianInput.AddRef(arrResult);

                if (m_componentType != null)
                {
                    for (int i = 0; i < arrResult.Length; i++)
                    {
                        arrResult[i] = abstractHessianInput.ReadObject(m_componentType);
                    }
                }
                else
                {
                    for (int i = 0; i < arrResult.Length; i++)
                    {
                        arrResult[i] = abstractHessianInput.ReadObject();
                    }
                }

                abstractHessianInput.ReadListEnd();
                return(arrResult);
            }
            else
            {
                ArrayList colList = new ArrayList();
                abstractHessianInput.AddRef(colList);
                if (m_componentType != null)
                {
                    while (!abstractHessianInput.IsEnd())
                    {
                        colList.Add(abstractHessianInput.ReadObject(m_componentType));
                    }
                }
                else
                {
                    while (!abstractHessianInput.IsEnd())
                    {
                        colList.Add(abstractHessianInput.ReadObject());
                    }
                }

                abstractHessianInput.ReadListEnd();

                Object[] arrResult = createArray(colList.Count);
                for (int i = 0; i < arrResult.Length; i++)
                {
                    arrResult[i] = colList[i];
                }
                return(arrResult);
            }
        }