2

我是使用 protobuf 的新手,并且在尝试序列化从 Dictionary 继承的类时遇到问题。其他属性没有被序列化。作为一个例子,我有这门课

[ProtoContract]
  public class InheritDictionary: Dictionary<string,string>
  {
    private int _myInt;


    [ProtoMember(1)]
    public int MyInt
    {
      get
      {
        return _myInt;
      }
      set
      {
        _myInt = value;
      }
    }

  }

当我序列化 MyInt 属性时不包括在内。我错过了什么吗?

4

1 回答 1

1

protobuf 规范没有集合对象的概念。在网络上,您只能获得包含的元素 - 集合在数据中根本没有特征。因此,没有地方可以存储列表的任何属性 - 字典本质上是列表(键/值对)。

在 DTO 层,我会说:不要继承集合。而是封装集合。拥有一个具有字典并具有额外属性的对象。

于 2012-09-25T17:23:24.997 回答