Reflection: Common Language Runtime Library loaders manage applicationsProgramDomain.
Such management includes loading each assembly to the corresponding application domain and controlling the memory layout of the type hierarchy of each set.
The Assembly contains modules, while the module contains types and types including members.
Reflection provides encapsulated assembly, module, and type objects.
You can use reflection to dynamically create instances of the type, bind the type to an existing object, or obtain the type from an existing object.
Then, you can call methods of the type or access its fields and attributes.
Serialization: serialization is the process of converting the object state to a format that can be maintained or transmitted.
In contrast to serialization, deserialization converts a stream into an object.
These two processes can be combined to easily store and transmit data.