Patent ID: 7197512

Claim:
In a computing system comprising an extensible serialization engine that is capable of serializing and deserializing data objects of various types, a method of transforming an initial object of an initial type to a final object of a final type, wherein the method allows for runtime operation of the serialization engine to be altered by one or more extension routines, without having to replace a monolithic implementation of the serialization engine, the method comprising acts of: receiving an initial object of an initial type for runtime processing by the serialization engine; receiving type information for the initial type of the initial object; based on the type information, generating an intermediate representation of the initial object that is suitable for runtime modification; calling one or more custom extension routines to change the intermediate representation of the initial object to a modified intermediate representation of the initial object, thereby altering the runtime operation of the serialization engine; from the modified intermediate representation of the initial object, generating a final object of a final type, wherein at least one of the final object and the initial object is an in-memory object, and where the final object comprises an in-memory object to be instantiated and populated based on the initial object, the serialization engine deserializes the initial object to generate the final object, and where the initial object comprises an in-memory object, the serialization engine serializes the initial object to generate the final object; and wherein the one or more custom extension routines called to change the intermediate representation specify how to change the intermediate representation, without actually changing the intermediate representation, such that changing the intermediate representation is deferred until generating the final object, in order to reduce buffering requirements.