我有一个课程需要拥有父母和祖父母的所有属性,但我不知道如何在protobuf-net中构建它。
貌似我应该只能说:
public class Child : Parent {
[ProtoMember(1)]
int childInt;
}
[ProtoInclude(2, typeof(Child))]
public class Parent : GrandParent{
[ProtoMember(1)]
int parentInt;
}
[ProtoInclude(2, typeof(Parent))]
public class GrandParent {
[ProtoMember(1)]
int grandParentInt;
}
据我所知,当我尝试序列化Child类的一个实例时,应该序列化所有ProtoMember整数成员。
这是在protobuf-net中进行序列化继承的正确方法吗? 帮帮我Marc!
答案 0 :(得分:1)
是的,这是处理protobuf-net中继承的可接受方式。它肯定会工作。在protobuf术语中,将实现类似:
message GrandParent {
int grandParentInt = 1;
optional Parent parent = 2;
}
message Parent {
int parentInt = 1;
optional Child child = 2;
}
message Child {
int childInt = 1;
}
然而,就个人而言,我很想介绍一种DTO类型(而不是序列化您现有的模型),它只是以最简单的方式公开所需的数据 - 可能意味着所有相同的水平。
答案 1 :(得分:0)
好的,这样才行!我进行了虚拟测试,当您执行 Parent的ProtoInclude语句时,所有 ProtPant的GrandParent 将被序列化。这很好。