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