我正在尝试移动现有代码以使用ProtoBuf-Net。有些类具有DataContract但DataMembers没有顺序,这导致忽略这些属性而不是序列化它们。
有没有办法让ProtoBuf-Net只序列化用[ProtoContract]标记的类,并在尝试使用[XmlType]或[DataContract]序列化类时抛出异常?如果可能,是否可以使用GPB正确序列化其他系统类(例如System.String)?
感谢。
答案 0 :(得分:2)
公平的问题;它不是以前出现的场景,但它是一个公平的场景,很容易解决,谢天谢地......我已经在{5}中将AutoAddProtoContractTypesOnly
添加到了{5}。如果您使用v1风格的RuntimeTypeModel
方法,则可以通过以下方式应用此方法:
Serializer.Serialize(...)
(所有RuntimeTypeModel.Default.AutoAddProtoContractTypesOnly = true;
方法都映射到Serializer.*
模型实例)
这是我现在通过的测试:
RuntimeTypeModel.Default