11.1 What Is Serialization?

Some types are like mosquitoes: once instantiated, they live a short life near to where they were born, and then die quietly. Types such as these don't store important nontransient data and are used by clients in the same context they were created in. These types are trivial, and generally don't need serialization. However, many important types are not like this, storing data that needs to be persisted to some backing store (e.g. a database, file, or network), or being passed back and forth between different contexts as parameters in method calls. These types need to support serialization.

Serialization is the act of taking an in-memory object or object graph and flattening it into a stream of bytes that may be stored or transmitted. Deserialization works in reverse, taking a stream of bytes and reconstituting it into an in-memory object instance or object graph. Serialization and deserialization can happen either explicitly or implicitly, but the basic mechanism remains the same.

    Part II: Programming with the .NET Framework
    Part IV: API Quick Reference