XMLSerializer不读取所有元素

时间:2013-02-26 17:45:05

标签: c# serialization xml-serialization

我有一个用于通过XMLSerializer序列化和反序列化的类。 ExportSteps是另一个实现IXmlSerializer以进行自定义序列化的类。

我的问题是它在读取exportSteps后没有读取和设置任何属性。如果我将IsNew和Test2移到上面的步骤,它可以正常工作。我不认为这是一个有效的解决方案,如果我需要两个自定义序列化类怎么办?

public class PublishOptions
{


    [XmlElement( "test" )]
    public bool Test { get; set; }

    [XmlElement( "exportSteps" )]
    public ExportSteps Steps { get; set; } <-- implements IXmlSerializable

    [XmlElement( "isNew" )]
    public bool IsNew { get; set; }

    [XmlElement( "test2" )]
    public bool Test2{ get; set; }}
}

var test = serializer.Deserialize(stream) as PublishOptions;

XML(示例):

<publishingOptions>
  <test>true</test>
  <exportSteps>     
    <option>foo</option>
    <option>bar</option>
  </exportSteps>
  <isNew>true</isNew>
  <test2>true</test2>
</publishingOptions>

1 个答案:

答案 0 :(得分:0)

我发现了错误,它出现在ReadXml方法中。读者正在退出元素中间的自定义阅读器。这导致自定义序列化程序失败后的任何内容。