ProtoBuf-net中的[ProtoInclude(20,typeof(child))]如何向上扩展类层次结构树
本文关键字:扩展 层次结构 中的 ProtoInclude typeof ProtoBuf-net child | 更新日期: 2024-11-05 01:47:22
我有一个类需要具有父级和祖父级的所有属性,但我不确定如何在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 中进行序列化继承的正确方法吗?帮帮我马克!
是的,这是在 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类型(而不是序列化现有模型),该类型只是以最简单的方式公开所需的数据 - 这可能意味着所有数据都在同一级别。
好的,这样就可以了!我做了虚拟测试,当你只执行父级的ProtoInclude语句时,GrandParent的所有ProtoMembers都将被序列化。这很好。