1. A method of processing data, comprising acts of: a computing device receiving and storing a serialized data stream; performing, by the computing device, a deserializing process to deserialize the serialized data stream, wherein the deserialization process comprises: determining known and unknown data types within the serialized data stream; instantiating objects in accordance with known data types, when existent, within the serialized data stream; creating unknown objects using unknown class constructs to retain information related to unknown data types, when existent, within the serialized data stream, said unknown objects being configured for use to regenerate the unknown data types according to the retained information when said unknown objects are reserialized; determining a base class of an unknown data type within the serialized data stream, and when base class deserialization is allowed, assigning said base class to said unknown data type; and retaining a type hierarchy of the unknown object and a number of unknown fields.