我最近碰到了一个场景,我们的一个开发人员在我们的数据合同中添加了一个未标记为数据成员的对象。我们正在使用DataContractSerializer来存储我们正在控制的硬件的配置文件。序列化操作显然没有成功。
发现的主要问题是配置文件在此过程中被破坏。有没有人知道在尝试序列化之前确保对象图将序列化的方法?
来自序列化异常的堆栈跟踪在调用XmlObjectSerializerContext.CheckIfTypeSerializable(..)时失败。我想知道是否有这样的东西,我可以在尝试序列化之前使用。
我想避免将图形流式传输到内存然后再存档,但我想这会有用......
有什么建议吗?
答案 0 :(得分:0)
有几种方法可以解决这个问题 - 使用IExtensibleDataObject,需要DataMembers,使用代理等。请参阅http://msdn.microsoft.com/en-us/library/ms731138.aspx [数据合同版本控制]和http://msdn.microsoft.com/en-us/library/ms731083.aspx [前向兼容数据合同]了解更多信息具体指导。
希望这有帮助!