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