Just to confirm; in common with similar core .NET serializers
(XmlSerializer, DataContractSerializer (ion the default mode, at
least), etc), it serializes as a *tree*, not a full graph. In theory I
*could* do something with identifiers, but it would be very hard to
consume for standard clients - i.e. instead of serializing an object,
I serialize an identifier/object pair (only sending the object if it
has not been seen before); issues:
- would need to keep a lookup of identifiers (could be expensive)
- may need to do fixups during deserialization (or demand that the
identifier cannot be used before it is defined)
- again; not very nice for other clients to consume
That said - I would *consider* testing something, but it would
essentially be an implementation-specific hack. I'd rather stay as
close to the compatible sub-set of features as possible. But (ahem)
since I already hack around inheritance...
Marc Gravell (protobuf-net)