0

我有这个 XML 元素字符串:

<person name="jhon smith" birth="11/10/1988" username="ilearn" password="123"/>

现在我想将其反序列化为其各自的对象:

public class CancelCardResponse
{
    public string name { get; set; }
    public string birth { get; set; }
    public string username { get; set; }
    public string password { get; set; }
}

我正在使用与此类似的代码:

XmlSerializer deserializer = new XmlSerializer(typeof(Person));
StringReader reader = new StringReader(myxmlelementstring);

var a = deserializer.Deserialize(reader); // fail!

错误说明如下:

System.InvalidOperationException {" XML 文档 (1,2) 中存在错误。 "}

是否可以像上面那样反序列化 XML 元素字符串?
有什么东西可以添加到我的 XML 元素字符串中以使用 C# 反序列化器吗?

4

2 回答 2

0

试试这样:

public class person
{
    [XmlAttribute]
    public string name { get; set; }

    [XmlAttribute]
    public string birth { get; set; }

    [XmlAttribute]
    public string username { get; set; }

    [XmlAttribute]
    public string password { get; set; }
}

我没有编译或测试它,自从我使用用户以来已经有一段时间了,XmlSerializer但这应该能让你到达那里或接近它。

于 2012-12-06T20:50:42.973 回答
0

将您的CancelCardResponse类重命名为Person并注释它的属性[XmlAttribute("Attr Name as in XML")]

于 2012-12-06T20:52:58.493 回答