我有大约 50 个多态继承关系类。我使用 XmlSerializer 对它们进行序列化。现在对于几个类,我想实现 IXmlSerializable。所以我从一个类开始。这个类不是基类而是直接派生自所有多态关系的基类。
实现后,生成的 XML 仅包含我用 WriteXML 方法编写的上述类的标签。没有其他类的信息。很奇怪的行为!!!!
所以请指导我解决这个问题,以便维护其他类信息。
我有大约 50 个多态继承关系类。我使用 XmlSerializer 对它们进行序列化。现在对于几个类,我想实现 IXmlSerializable。所以我从一个类开始。这个类不是基类而是直接派生自所有多态关系的基类。
实现后,生成的 XML 仅包含我用 WriteXML 方法编写的上述类的标签。没有其他类的信息。很奇怪的行为!!!!
所以请指导我解决这个问题,以便维护其他类信息。
据我了解,您是正确的 - 您的 xml 包含您隐式添加的WriteXML
(当前类的)属性?但这是正确的行为。您应该隐式添加项目,如接口描述中的示例。
如果您需要基类的属性 - 添加它们。如果您需要从此类继承的类的属性 - 尝试通过反射获取它们。使用反射获取属性名称。但是不要typeof(MyClass)
使用.GetType()
并在那里检查如何获取属性值。