在为WCF使用protobuf-net序列化程序时出现问题

时间:2011-01-28 14:17:05

标签: wcf protobuf-net

我们正在使用protobuf-net来序列化我的WCF数据合约。序列化时我收到错误“在FingerPrint中检测到重复的标签9”有什么建议吗?

我没有使用[ProtoContract][ProtoInclude][Protomember等任何属性;我在课堂上使用[DataContract][DataMember]

2 个答案:

答案 0 :(得分:0)

protobuf-net(缺少更明确的内容)将使用任何[DataMember]属性中的Order;所以 - 有没有标记9?多少?每个标识符在protobuf-net中必须是唯一的。

你能添加一个[ProtoMember]给它一个新的标识符吗?如果文件是代码生成的,那么你也可以使用[ProtoPartialMember]对抗类型(不是成员)的部分类来实现同样的目的。

答案 1 :(得分:0)

哦,谢谢你的回复,我找出了发生这种情况的原因。 我的类包含一个或多个具有相同顺序的属性(数据成员),即order = 9,这就是我收到该错误的原因。现在我能够序列化和反序列化我的课程让你知道我是否会遇到任何其他问题。如果你告诉我protobuf.net的限制,那就太棒了。

我打算用这一个替换所有的序列化器。我想添加这个序列化器(protobuf.net)的速度比BinarySearilizer快10倍(根据我的测试应用程序)再次感谢你。