假设有一个.proto文件,内容如下:
message Base {
string Dummy = 1
}
message Derived {
Base Super = 1
string Parp = 2
}
... And some C# something like:
public class Base {
public string Dummy;
}
public class Derived : Base {
public string Parp
}
如何在protobuf-net中自定义序列化以实现此功能?最初我开始研究使用TypeModel并为基本MetaType调用AddSubType,但是似乎它创建了所有派生类的可选字段的Base类型定义(即与我需要的相反)。 我认为我可能能够自己遍历层次结构,但是看到TypeModel时,它似乎支持提供要反序列化的类型,但在序列化期间它使用value.GetType()。 即使这样,我也不完全清楚如何做到这一点。 我的唯一选择是使用ProtoWriter手动编写每个字段吗? 这是我目前正在尝试的,但我希望有更简单的方法。