我有一个用于通过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>
答案 0 :(得分:0)
我发现了错误,它出现在ReadXml方法中。读者正在退出元素中间的自定义阅读器。这导致自定义序列化程序失败后的任何内容。