是否可以(反)序列化异构对象列表?
答案 0 :(得分:2)
List<object>
对不包含类型元数据的序列化格式提出了许多挑战......但与往常一样,有技巧,陷阱和变通方法。
如果您指的是最外层的 ,这里有一些选项可以围绕使用不同的标记(/ field-number)来指示消息类型。这对于API(例如,套接字会话)非常有用,其中可能随时会出现不同的消息。例如:How can I send multiple types of objects across Protobuf?
消息内部有点棘手;如果候选类型列表很小,那么合理的解决方法就像这里提到的那样:Protobuf attributes with a hierarchy of generic classes,即将每个预期类型视为专业化。
如果无法预测类型,则v2包含另一种解决方法,但包含的元数据多于正常情况;见http://marcgravell.blogspot.com/2011/03/objects-graphs-and-all-that-jazz.html