我有一些XML,我试图反序列化下面的xml。
<?xml version="1.0" encoding="UTF-8"?>
<disproot version="1.0">
<header>
<msg-type> init_req </msg-type>
<txn-id> 0090 </txn-id>
</header>
<body />
</disproot>
我的目标是这样的。
[XmlRoot("disproot")]
public class Request
{
[XmlAttribute("version")]
public string Version
{ get; set; }
[XmlElement("header", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
Header header = new Header();
}
public class Header
{
public Header()
{
}
[XmlElement("txn-id")]
public string TransactionId
{
get;
set;
}
[XmlElement("msg-type")]
public string MessageType
{
get;
set;
}
}
我的页眉对象未填充。成员显示为Null值。见下文。 Request.Header.TasnsactionId的值为Null Request.Header.MessageType的值也是Null
我在这里做错了什么?
任何帮助都会很明显。
答案 0 :(得分:1)
XML序列化仅适用于公共成员。因此,您可以将字段更改为
public Header header = new Header();
它应该可以正常工作。虽然我建议你不要使用公共字段,但你应该把它变成一个属性:
public Header Header { get; set; }