ProtoBuf-net仅使用ProtoContract并在DataContract或XmlType上抛出异常

时间:2012-08-08 19:25:17

标签: protobuf-net

我正在尝试移动现有代码以使用ProtoBuf-Net。有些类具有DataContract但DataMembers没有顺序,这导致忽略这些属性而不是序列化它们。

有没有办法让ProtoBuf-Net只序列化用[ProtoContract]标记的类,并在尝试使用[XmlType]或[DataContract]序列化类时抛出异常?如果可能,是否可以使用GPB正确序列化其他系统类(例如System.String)?

感谢。

1 个答案:

答案 0 :(得分:2)

公平的问题;它不是以前出现的场景,但它是一个公平的场景,很容易解决,谢天谢地......我已经在{5}中将AutoAddProtoContractTypesOnly添加到了{5}。如果您使用v1风格的RuntimeTypeModel方法,则可以通过以下方式应用此方法:

Serializer.Serialize(...)

(所有RuntimeTypeModel.Default.AutoAddProtoContractTypesOnly = true; 方法都映射到Serializer.*模型实例)

这是我现在通过的测试:

RuntimeTypeModel.Default