我是使用protobuf的新手,并且在尝试序列化继承自Dictionary的类时遇到问题。其他属性未被序列化。 作为一个考试,我有这个课程
[ProtoContract]
public class InheritDictionary: Dictionary<string,string>
{
private int _myInt;
[ProtoMember(1)]
public int MyInt
{
get
{
return _myInt;
}
set
{
_myInt = value;
}
}
}
当我序列化时,不包括MyInt属性。 我错过了什么吗?
答案 0 :(得分:1)
protobuf规范没有收集对象的概念。在线上,您仅获取所包含的元素 - 该集合在数据中不包含 。因此,没有地方存储任何列表的属性 - 字典本质上是列表(键/值对)。
在DTO层,我会说:不要继承馆藏。 封装集合。有一个拥有字典且拥有额外属性的对象。