我现在正试图了解protobuf-net,并找到了这篇关于能够序列化子类型的文章:如何使用protobuf-net序列化继承类
这实际上表明基类型需要知道子类型:
[ProtoContract]
[ProtoInclude(1, typeof(SubType))]
class BaseType { ... }
class SubType : BaseType { ... }
问题:
- 如果子类型未知怎么办?
- protobuf-net可以自动配置特定类型及其子类型(不知道它们)吗?
- 第三,是否有像Fluent-API这样的东西来配置protobuf-net,而不是使用属性?
- 是的,在RuntimeTypeModel下有一个完整的API,包括在运行时自动发现的回调,而不是提前发现
然而!
不,它不能处理未知的子类型,除非你的意思是:完全忽略子类型方面,只是把它当作已知类型来处理。