private static Array ReadArray(BinaryReader reader, Encoding encoding) {
var objType = ReadType(reader);
var arrayLength = reader.ReadInt32();
var array = Array.CreateInstance(objType, arrayLength);
for (int i = 0; i < arrayLength; i++) {
array.SetValue(ReadValue(reader, encoding), i);
}
return array;
}