I'm trying to make the transition from C to C# and I have a few questions about saving objects to files and serialization.
In C if you want to save a data structure, I've been taught that saving it in a text format as a string is often unnecessary and a binary file that exist as a memory snapshot is often better because it doesn't need encoding/decoding and matching strings to fields. In C# the approach appears to be different, it converts object fields separately to a string or some other format and then it reconstructs the object when necessary. I'm not sure how binary serialization works but I think it sill converts the data to some format and doesn't exist as a pure non-formatted memory snapshot.
Why is the "memory snapshot" method without any encoding/decoding not used in C# ? The only reason I can think is compatibility with other code and environments, and maybe it has to do with the complexity of objects vs regular structures.