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 に答える