【问题标题】:IXmlSerializable and XmlSerializer together issueIXmlSerializable 和 XmlSerializer 一起发出
【发布时间】:2012-06-12 17:37:32
【问题描述】:

我有大约 50 个多态继承关系类。我使用 XmlSerializer 对它们进行序列化。现在对于几个类,我想实现 IXmlSerializable。所以我从一个类开始。这个类不是基类而是直接派生自所有多态关系的基类。

实施后,生成的 XML 仅包含我在 WriteXML 方法中编写的上述类的标签。没有其他类的信息。非常奇怪的行为!!!!

所以请指导我解决这个问题,以便维护其他类信息。

【问题讨论】:

  • 您的意思是基类中的信息不会为您的自定义子类自动序列化吗?或者其他不相关的子类根本不再序列化数据?
  • 您在寻找哪种信息information for other classes
  • 基类和所有其他类的信息根本没有序列化。生成的 XML 仅具有我已实现 IXmlSerializable 的类的标签。
  • 信息是类的公共属性。

标签: c# xmlserializer ixmlserializable


【解决方案1】:

据我了解,您是正确的 - 您的 xml 包含您在 WriteXML(当前类)中隐式添加的属性?但这是正确的行为。您应该在接口描述中隐式添加项目,如example

如果您需要基类的属性 - 添加它们。如果您需要从此类继承的类的属性 - 尝试通过反射获取它们。 Get Property Names using Reflection 。但是不要使用typeof(MyClass),而是使用.GetType() 并检查there 如何获取属性值。

【讨论】:

    【解决方案2】:

    类似问题herethere

    以行结束ReadXml(XmlReader reader) 方法

    reader.Read();

    接缝解决问题...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2011-02-09
      相关资源
      最近更新 更多