C# 如何迁移XmlSerializer创建的xml文件,以便DataContractSerializer可以加载它

C# 如何迁移XmlSerializer创建的xml文件,以便DataContractSerializer可以加载它,c#,xml-parsing,migration,xmlserializer,datacontractserializer,C#,Xml Parsing,Migration,Xmlserializer,Datacontractserializer,我正在为应用程序数据编写迁移代码。我们希望停止使用XmlSerializer,让DataContractSerializer成为整个应用程序中使用的唯一xml序列化程序 想到的第一个解决方案是使用XmlSerializer反序列化内存中的xml内容,然后使用DataContractSerializer重新序列化 然而,由于这是迁移代码,我不能使用用于序列化(数据契约)的类型,因为我们将使用该类型的“当前”实现,该实现将随时间变化 换句话说,是否有方法编辑xml文件以使其与DataContract

我正在为应用程序数据编写迁移代码。我们希望停止使用XmlSerializer,让DataContractSerializer成为整个应用程序中使用的唯一xml序列化程序

想到的第一个解决方案是使用XmlSerializer反序列化内存中的xml内容,然后使用DataContractSerializer重新序列化

然而,由于这是迁移代码,我不能使用用于序列化(数据契约)的类型,因为我们将使用该类型的“当前”实现,该实现将随时间变化


换句话说,是否有方法编辑xml文件以使其与DataContractSerializer兼容?

一种可能是将类型的快照复制/粘贴到单独的数据转换程序集中,保留data contract和XmlSerializer属性,但从其业务逻辑中剥离,然后用它来做转换。除此之外,这个问题对于stackoverflow来说似乎过于笼统。您能否将其分解为具体问题,如1)使用Linq转换为XML,将属性降级为元素,或2)使用XPath,将一级列表转换为两级?谢谢您的建议。这似乎是一个合理的选择。我不明白你说的对stackoverflow来说太笼统是什么意思。什么地方是发帖的好地方?那是什么地方?