2016-02-23 37 views
2

我开始看XML(反)序列和我挣扎反序列化下面的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> 
+0

后者的作品没有调整,因为你有值的元素存在 –

回答

2

尝试使用此代码,它的工作原理与您的期望相同。你还可以添加其他属性相同的方式

public class Reader 
{ 
    ... 
    [XmlElement("OutputFont")] 
    public ReaderItemOutputFont ReaderItem { get; set; } 
} 


[Serializable()] 
public class ReaderItemOutputFont 
{ 
    [XmlAttribute("value")] 
    public String OutputFont { get; set; } 
} 
0

这个工作对我来说 -

[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