Ejemplo n.º 1
0
        public static dynamic Parse(this ClassField field, ref IDataReader reader)
        {
            if (field.is_vector || field.type == "ByteArray")
            {
                dynamic[] array = null;
                if (field.constant_length.HasValue)
                {
                    array = new dynamic[field.constant_length.Value];
                }
                else
                {
                    string read_length_method = $"Read{field.write_length_method.Replace("write", "")}";
                    array = new dynamic[read_length_method._readMethod(ref reader)];
                }

                for (int i = 0; i < array.Length; i++)
                {
                    array[i] = field._readElement(ref reader);
                }

                return(array);
            }
            else
            {
                return(field._readElement(ref reader));
            }
        }