0

我有这个返回 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; }
}

有人能帮我吗?谢谢!

4

1 回答 1

2

XML 的根是“return”元素。添加一个包含您的列表的包装类:

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

并得到结果:

ResultWrapper result = ProccessResult<ResultWrapper>(xml);
于 2013-08-21T21:40:51.567 回答