private byte[] ReadBytes(int length)
{
if (_readerIndex + length > _data.Count)
throw new InvalidOperationException("Read out of boundaries.");
var result = new byte[length];
_data.CopyTo(_readerIndex, result, 0, length);
_readerIndex += length;
return result;
}
}