Description
BinaryReader has a concept of frame, which is position, header, raw flag, etc. When reading nested objects we preserve previous frame in a bunch of variables and restore them afterwards.
This process can be improved by using a struct: backup/restore in one line, easier to grasp which parameters belong to a frame.