jjzjj

IExtensibleDataObject

全部标签

c# - XmlSerializer 等效于 IExtensibleDataObject

使用DataContracts,您可以从IExtensibleDataObject派生以允许往返工作,而不会丢失XML文件中的任何未知附加数据。我不能使用DataContract,因为我需要控制输出XML的格式。但我还需要能够在旧版本应用程序中读取future版本的XML文件,而不会丢失XML文件中的任何数据。例如XMLv1:FredXMLv2:Fred42如果从我的应用程序的v1中读取一个XMLv2文件,反序列化和再次序列化它会将它变成一个XMLv1文件。即“年龄”字段被删除。有什么类似于IExtensibleDataObject的东西可以与XmlSerializer一起使用来避免A

c# - IExtensibleDataObject 与 IExtensibleObject?

我想弄清楚IExtensibleDataObject和IExtensibleObject之间的区别。MSDN说第一个(IExtensibleDataObject)是让可能添加属性的对象反序列化,第二个(IExtensibleObject)看起来很相似,它确实让对象也添加属性。我很困惑。 最佳答案 IExtensibleDataObject是关于序列化的,它可以在WCF的服务堆栈之外使用。它的主要目的是在不丢失信息的情况下往返不同版本的数据契约(Contract)。例如,在你的契约(Contract)的第一个版本中,你有这样的类型:[