首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在根本身是IEnumerable的情况下,如何使用C# XML Serialization对以下文件进行反序列化?

在根本身是IEnumerable的情况下,如何使用C# XML Serialization对以下文件进行反序列化?
EN

Stack Overflow用户
提问于 2013-02-01 13:51:24
回答 1查看 1.2K关注 0票数 1
代码语言:javascript
复制
<results>
    <result>
        <egov_ref_no>20121203001</egov_ref_no>
        <status>OK</status>
        <err_code>01</err_code>
    </result>
    <result>
        <egov_ref_no>20121203002</egov_ref_no>
        <status>OK</status>
        <err_code>02</err_code>
    </result>
    <result>
        <egov_ref_no>20121203003</egov_ref_no>
        <status>OK</status>
        <err_code>03</err_code>
    </result>
</results> 

上面的代码显示,根节点已经是一个IEnumerable,而在在线示例中,它们只是元素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-01 14:19:45

如果你有一个结果对象,你只需要在XmlSerializer构造函数中传入一个XmlRootAttribute即可。在这种情况下,它的“结果”

示例:

代码语言:javascript
复制
List<Result> results = new List<Result>();

XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Result>), new XmlRootAttribute("results"));

using (FileStream stream = new FileStream(@"C:\Test.xml", FileMode.Open))
{
    results = (List<Result>)xmlSerializer.Deserialize(stream);
}

我的结果对象:

代码语言:javascript
复制
[XmlType(TypeName = "result")]
public class Result
{
    [XmlElement(ElementName = "egov_ref_no")]
    public long EgovRefNo { get; set; }

    [XmlElement(ElementName = "status")]
    public string Status { get; set; }

    [XmlElement(ElementName = "err_code")]
    public int ErrorCode { get; set; }
}

这将作为List<Result>返回

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14640545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档