私はプロトコル バッファが初めてで、VS2010 に protobuf-net を使用しています。私がここで読んでいるものからプロトコルバッファの辞書、protobufがオブジェクト型を値として持つ辞書をシリアル化できるようには見えません。しかし、ここで彼のサイトで私はこれを読みました:
種類に関する注意事項
サポート:
次のようなカスタム クラス: データ コントラクトとしてマークされている Silverlight 用のパラメーターなしのコンストラクター: public である 多くの一般的なプリミティブなど 1 次元配列: T[] List / IList Dictionary / IDictionary IEnumerable を実装し、Add(T) メソッドを持つ任意の型コードは、選出されたメンバーの周りで型が変更可能であることを前提としています。したがって、カスタム構造体は不変である必要があるため、サポートされていません。
サポートされているようです。
次のように、オブジェクトのリストを正常にコンパイルできます。
message ValuesObject {
optional int32 SomeVal = 1;
repeated SomeClass ListOfSomeClassTypes = 2;
}
これはList<SomeClass>
. protobuf-net a を使用してシリアル化できないのはなぜDictionary<int, SomeClass>
ですか? をシリアル化すると、メッセージはどのようになりますDictionary<int, SomeClass>
か?