C# XMLSerializer:反序列化为派生类型
我祈祷有人对Microsoft XmlSerializer有很好的了解 基本上,我已经构建了一个系统,用于在序列化程序的背面输出XML,这现在给我带来了很多麻烦,我正在尝试避免重大的重写 介绍 我当前的系统使用了很多派生类 比如说, 基本响应->停车场响应->停车场响应记录 BaseResponse和CarParkResponse(都在库dll中)与CarparkResponseInhered分开 因此,基类与派生类无关 我所做的 ->声明的派生类 我理解,为了让xmlserializer完成它的工作,有许多方法可以声明dervied类C# XMLSerializer:反序列化为派生类型,c#,serialization,xml-serialization,xml-deserialization,C#,Serialization,Xml Serialization,Xml Deserialization,我祈祷有人对Microsoft XmlSerializer有很好的了解 基本上,我已经构建了一个系统,用于在序列化程序的背面输出XML,这现在给我带来了很多麻烦,我正在尝试避免重大的重写 介绍 我当前的系统使用了很多派生类 比如说, 基本响应->停车场响应->停车场响应记录 BaseResponse和CarParkResponse(都在库dll中)与CarparkResponseInhered分开 因此,基类与派生类无关 我所做的 ->声明的派生类 我理解,为了让xmlserializer完成它
- 使用xmlclude在基类中声明派生类
- 要在xmlSerialiser中序列化和反序列化的声明类型。例如:
谢谢。使用XmlAttributeOverrides类可以做一些事情。它主要用于特定的属性重写,因此它可能对您来说是最好的,也可能不是最好的 很长一段路要走,将其序列化为继承的类。然后,如果映射相同,则将xml反序列化为基类,然后重新序列化为所需的内容
根据您对程序集的控制程度,您可以重写继承类上的序列化,使其作为基类来执行。可以使用XmlAttributeOverrides类来执行某些操作。它主要用于特定的属性重写,因此对您来说可能是最好的,也可能不是最好的 很长一段路要走,将其序列化为继承的类。然后,如果映射相同,则将xml反序列化为基类,然后重新序列化为所需的内容
根据您对程序集的控制程度,您可以重写继承类上的序列化,使其作为基类来执行。为响应喝彩,我在XmlAttributeOverrides方面遇到了麻烦,它使我更进一步,然后我在响应对象内的数据方面遇到了一些其他问题(其中一张是名单)。我暂时不得不避开XmlSerializer。我打算在有时间的时候重新讨论这个问题,并将其发布到这里。我大量使用继承,我认为正是这一点导致XmlSerializer出现了问题。为这一响应欢呼,我在XmlAttributeOverrides方面遇到了麻烦,这让我更进一步我的响应对象中的数据还存在一些其他问题(其中一个是列表)。我暂时不得不避开XmlSerializer。我打算在有时间的时候重新讨论这个问题,并将其发布到这里。我大量使用继承,我认为正是这一点导致XmlSerializer出现问题。