【发布时间】:2012-10-01 13:18:02
【问题描述】:
给定一个如下所示的 .proto:
message Base {
string Dummy = 1
}
message Derived {
Base Super = 1
string Parp = 2
}
... 还有一些 C# 类似:
public class Base {
public string Dummy;
}
public class Derived : Base {
public string Parp
}
如何在 protobuf-net 中自定义序列化才能做到这一点?最初我开始考虑使用 TypeModel 并为 Base MetaType 调用 AddSubType,但后来它似乎为 Base 创建了类型定义,其中包含所有派生类的可选字段(即相反与我需要的)
我以为我自己可以遍历层次结构,但是查看 TypeModel,它似乎支持将类型提供给 Deserialise,但它在序列化过程中使用 value.GetType()。即便如此,我如何做到这一点也不完全清楚。我唯一的选择是使用 ProtoWriter 手动编写每个字段吗?这是我目前正在尝试的,但我希望有更简单的方法。
【问题讨论】:
标签: c# serialization protobuf-net