实际上我想使用Google的java实现序列化我的数据,然后使用C#实现反序列化?
我选择了protobuf-net,因为它似乎更稳定(proto#仍然是v0.9或者我会为它而去)。在开始研究之前,我想确保我能够实现这一点(使用java实现序列化数据并使用protobuf-net对其进行反序列化)。或者是否有任何特定于protobuf-net实现的方法列表?
答案 0 :(得分:2)
如果您想在多个平台上使用相同的API,Jon Skeet's implementation可能更适合您。不同之处在于protobuf-net是围绕常见的C#开发模式设计的,例如它并不要求您使用生成的类型(您可以使用自己的类型,与DataContractSerializer
完全一样,{{1}等等) - 它直接支持一些BCL概念。
两者应该在线上100%兼容,但这里有一些 API 差异:
XmlSerializer
,DateTime
,TimeSpan
等(由邮政编码中的bcl.proto中的合同描述)您最有可能注意到的是继承。简单地说:如果您打算使用互操作,请不要使用此功能。如果你正在做一些将使用特定于.NET的技巧,我试图在intellisense中明确表达它,但是如果你从.proto开始它将不会使用这些无论如何(它应该便携式)。
答案 1 :(得分:0)
所有Google序列化都是有线兼容的,虽然protobuf-net不是由Google编写的,但claims to be wire-compatible。
此外,还有一页从Google's documentation.
链接的兼容C#API页面