使用 Protobuf-Net 序列化未知子类型
Posted
技术标签:
【中文标题】使用 Protobuf-Net 序列化未知子类型【英文标题】:Serializing Unknown Sub-Types With Protobuf-Net 【发布时间】:2021-09-03 18:10:22 【问题描述】:我目前正在尝试了解 protobuf-net,并找到了这篇关于能够序列化子类型的文章:How to Serialize Inherited Class with ProtoBuf-Net
实际上这表明基类型需要了解子类型:
[ProtoContract]
[ProtoInclude(1, typeof(SubType))]
class BaseType ...
class SubType : BaseType ...
问题:
-
如果子类型未知怎么办?
可以为特定类型及其子类型自动配置 protobuf-net(不知道它们)吗?
第三,是否有类似 Fluent-API 的东西来配置 protobuf-net,而不是使用属性?
【问题讨论】:
【参考方案1】:-
是的,在 RuntimeTypeModel 下有一个完整的 API,包括在运行时而不是提前自动发现的回调
但是!
不,它不能与未知子类型一起使用,除非您的意思是:完全忽略子类型方面并将其视为已知类型。
【讨论】:
谢谢马克!请您为我指明正确的方向以获取有关这方面的一些文档吗? @Matthew 我不确定我是否曾经写过这方面的长篇文档。 API 和示例在那里。你有什么具体的尝试吗? 基本上,我正在构建一个自动配置所有子类型以进行序列化的东西,基于它将序列化这些子类型的所有公共实例属性的约定。我还向您发送了与此和记录类型有关的一些推文。 我已经分叉了 protobuf-net repo,所以我会做一些挖掘工作:-)以上是关于使用 Protobuf-Net 序列化未知子类型的主要内容,如果未能解决你的问题,请参考以下文章