Hi Bartosz;
At the moment, it only supports the reflection/attribute based approach (directly comparably to the [KnownType] attribute used in vanilla WCF / DataContractSerializer). I have some plans and prototype code to rectify this (runtime models), but it is lots of work, and it isn't anything I can promise on any fixed timescale I'm afraid.
In order to shim inheritance into the protocol buffers format (without doing anything /too/ evil) it needs to know a unique tag per subclass. I can't help thinking that the most pragmatic option here is just to add a few attributes. Hunting for subclasses on the fly would be messy, and I can't include the type metadata without breaking completely from the standard protocol buffers wire format.
Marc Gravell
(protobuf-net)