反序列化来自不同元素的同名 xml 属性
本文关键字:xml 属性 元素 反序列化 | 更新日期: 2023-09-27 18:35:53
我开始研究XML(反)序列化,我正在努力反序列化以下XML
<?xml version="1.0" encoding="utf-8" ?>
<Reader>
<NewRecord value ="HH"/>
<FileTerminator value ="HHProgram"/>
<OutputFont value ="Courier"/>
</Reader>
进入以下类
public class Reader
{
[XmlElement]
public string NewRecord;
[XmlElement]
public string FileTerminator;
[XmlElement]
public string OutputFont;
}
我在引用以下 XML 按预期工作的每个元素的正确值属性时遇到问题。
<?xml version="1.0" encoding="utf-8" ?>
<LayoutReader>
<NewRecord>HH</NewRecord>
<FileTerminator>HHProgram</FileTerminator>
<OutputFont>Courier</OutputFont>
</LayoutReader>
尝试使用此代码,它按预期工作。您也可以以相同的方式添加其他属性
public class Reader
{
...
[XmlElement("OutputFont")]
public ReaderItemOutputFont ReaderItem { get; set; }
}
[Serializable()]
public class ReaderItemOutputFont
{
[XmlAttribute("value")]
public String OutputFont { get; set; }
}
这对
我有用 -
[XmlRoot]
public class Reader
{
[XmlElement]
public NewRecord NewRecord;
[XmlElement]
public FileTerminator FileTerminator;
[XmlElement]
public OutputFont OutputFont;
}
public class NewRecord
{
[XmlAttribute]
public string value;
}
public class FileTerminator
{
[XmlAttribute]
public string value;
}
public class OutputFont
{
[XmlAttribute]
public string value;
}
var t = o.Deserialize("xml"); // works