I do not know about protobuf-net, but this should be absolutely normal. I suspect that if this does not work in protobuf-net, Mark will consider this a mistake and fix it ... this is definitely the attitude that I will take in my C # port :)
(Actually, I cannot easily understand how this will be a problem ... it does not seem like messages will be represented by structures where recursion will be a problem.)
This should be pretty easy to check - I suggest you try with a small message and see if you have any problems. All you have to do is create a message and check if it can be serialized and deserialized correctly, perhaps between different platforms.
EDIT: Obviously, you need to make sure that there are no actual loops in terms of the messages themselves ...
source share