我正在尝试使用http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers与使用来自 iphone 的 protobuf-net 的 C# 程序交谈
不幸的是,我得到的 .proto 文件(从 C# 源代码生成)包含 protoc 拒绝的一行:
repeated Pair_Guid_List`1 Local = 6;
这似乎是因为源数据是一个 C# 字典,其中一个 Guid 键和一个类作为值。有没有办法更好地应对这种情况?
使用的 protobuf-net 版本是 r278.zip。
(C# 发送和接收这些 protobuf 都可以正常工作,只是当我们将 iphone 添加到组合中时,这成为一个问题。)
更新:感谢 Marc,现在一切正常!
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;