【问题标题】:C# xml to object (deserialization) [closed]C# xml 到对象(反序列化)[关闭]
【发布时间】:2019-02-28 10:32:01
【问题描述】:

XML 到 C# 对象返回错误:

错误是:根级别的数据无效。第 1 行,位置 1。

如何将xml字符串反序列化为c#对象?

这是我的 XML:

<MSGIDRETURN>
    <VERSION>1.0</VERSION>
    <MSGID_LIST>
        <MSGID>Test1234567</MSGID>
    </MSGID_LIST>
</MSGIDRETURN>

这是我的 C# 类:

[XmlRoot("MSGIDRETURN")]
public class MSGIDRETURN
{
    [XmlElement("VERSION")]
    public string Version { get; set; }

    [XmlElement("MSGID_LIST")]
    public MSGID_LIST MsgIdList { get; set; }
}

[Serializable()]
public class MSGID_LIST
{
    [XmlElement("MSGID")]
    public List<string> MsgId { get; set; }
}

以及反序列化代码:

XmlSerializer serializer = new XmlSerializer(typeof(MSGIDRETURN));
        StringReader rdr = new StringReader(inputString.Trim());
        MSGIDRETURN resultingMessage = (MSGIDRETURN)serializer.Deserialize(rdr);

【问题讨论】:

  • 刚刚尝试了您的解决方案,使用字符串而不是输入,它正在工作。你的输入字符串是什么?是那个文件还是别的什么?
  • @zholinho 谢谢你的回答。 inputString 有一些无效字符,如 \" 。现在它正在工作。我在 testData 中编写我的字符串,它会工作。

标签: c# xml deserialization xml-deserialization


【解决方案1】:

刚刚尝试了您的解决方案,使用字符串而不是输入,它正在工作。 你的 inputString 是什么?是那个文件还是别的什么?

string testData = @"<MSGIDRETURN>
                        <VERSION>1.0</VERSION>
                        <MSGID_LIST>
                            <MSGID>Test1234567</MSGID>
                        </MSGID_LIST>
                     </MSGIDRETURN>";

 XmlSerializer serializer = new XmlSerializer(typeof(MSGIDRETURN));
 StringReader rdr = new StringReader(testData.Trim());
 MSGIDRETURN resultingMessage = (MSGIDRETURN)serializer.Deserialize(rdr);

【讨论】:

    猜你喜欢
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    相关资源
    最近更新 更多