http://code.google.com/p/metasyntactic/wiki/ProtocolBuffersを使用して、iphone から protobuf-net を使用する C# プログラムと通信しようとしています。
残念ながら、私が受け取った (C# ソース コードから生成された) .proto ファイルには、protoc が拒否している行が含まれています。
repeated Pair_Guid_List`1 Local = 6;
これは、ソース データが C# ディクショナリであり、値として Guid キーとクラスがあるためと思われます。これにうまく対処する方法はありますか?
使用されている protobuf-net のバージョンは r278.zip です。
(これらの protobuf の送受信はすべて正常に動作します。これが問題になるのは、iPhone をミックスに追加したときだけです。)
更新: マークのおかげですべてが機能するようになりました!
C# 側のオブジェクトは次のようになりました。
[ProtoMember(7)]
public Dictionary<Guid, List<Pages>> ReceivedPages { get; set; }
.proto で次を使用して正常に機能しました。
message PagesDict {
required bcl.Guid guid = 1;
repeated Pages Pages = 2;
}
問題のメッセージには次が含まれます。
repeated PagesDict ReceivedPages = 7;