2013-08-21 37 views
0

我有这样的XML Web服务的是回报:解析XML列表类型的使用对象注解

<return> 
<LuckNumber> 
    <Number>00092</Number> 
    <CodError>00</CodError> 
    <Serie>019</Serie> 
    <Number>00093</Number> 
    <CodError>00</CodError> 
    <Serie>019</Serie> 
    <Number>00094</Number> 
    <CodError>00</CodError> 
    <Serie>019</Serie> 
    <Number>00095</Number> 
    <CodError>00</CodError> 
    <Serie>019</Serie> 
</LuckNumber> 

我如何解析这个XML使用注释一个类型的对象?

我试了一下,但是还是不行:

protected T ProccessResult<T>(string result) { 
    XmlSerializer serializer = new XmlSerializer(typeof(T)); 

    using (StringReader reader = new StringReader(result)) 
    { 
     var resultDeserialize = (T)(serializer.Deserialize(reader)); 

     return resultDeserialize; 
    } 
} 
ProccessResult<List<GenerateNumberList>>(STRING_XML_ABOVE) 

类来分析:

[XmlRoot("LuckNumber")] 
public class GenerateNumberResult 
{ 
    [XmlElement("Number")] 
    public string LuckNumber { get; set; } 

    [XmlElement("CodError")] 
    public string CodError{ get; set; } 

    [XmlElement("Serie")] 
    public string Serie { get; set; } 
} 

有人能帮助我吗?谢谢!

+0

你应该考虑改变你的XML结构。 – MarcinJuraszek

回答

2

XML的根是“返回”元素。添加包含列表中的包装类:

[XmlRoot("return")] 
public class ResultWrapper 
{ 
    [XmlElement("LuckNumber")] 
    public List<GenerateNumberResult> numberList; 
} 

并得到结果:

ResultWrapper result = ProccessResult<ResultWrapper>(xml);