private IMPArray DecodeMPArray(ByteArray buffer) { IMPArray array = MPArray.NewInstance(); MPDataType type = (MPDataType)Convert.ToInt32(buffer.ReadByte()); if (type != MPDataType.MP_ARRAY) { throw new Exception(string.Concat("Invalid MPDataType. Expected: ", MPDataType.MP_ARRAY, ", found: ", type)); } int num = buffer.ReadShort(); if (num < 0) { throw new Exception("Can't decode MPArray. Size is negative: " + num); } for (int i = 0; i < num; i++) { MPDataWrapper val = DecodeObject(buffer); if (val == null) { throw new Exception("Could not decode SFSArray item at index: " + i); } array.Add(val); } return(array); }
private IMPArray UnrollCollection(ICollection collection) { IMPArray array = MPArray.NewInstance(); foreach (object item in collection) { array.Add(WrapField(item)); } return(array); }
private IMPArray UnrollArray(object[] arr) { IMPArray array = MPArray.NewInstance(); foreach (object item in arr) { array.Add(WrapField(item)); } return(array); }