This is available on github and wairing for approval on the Open Exchange.
It allows you to
- "Serialize" any class instance that extends from the adapter to a DynamicObject.
- "Deserialize" a DynamicObject to a class instance that extends the adapter.
- References to other classes can be followed recursively and serialized.
- Arrays and lists of Serial objects and DataTypes are handled for serialization en deserialization
- Arrays and lists of Persistent objects can be serialized in full, on the deserialization it can't create referenced objects, but an array or list of ID values can be provided and it will be populated.
- Projection of arrays can be controlled to be either an array of named objects or nameless objects.
- Properties can be set to not be projected.
- Serialization of referenced persistent objects can be disabled at a property level or for the class as a whole.