无法将 XML 反序列化到列表中
Unable to Deserialize XML into list
我正在尝试将具有对象列表的 XML 反序列化为 C# 对象。我简化了 XML,它的结构如下所示:
[Serializable, XmlRoot("Form")]
public class MyXML
{
public string Name { get; set; }
[XmlElement("Employee")]
public List<Employee> employeeList;
}
public class Employee
{
public string EmployeeNumber { get; set; }
[XmlElement("Addresses")]
public List<Addresses> AddressesList { get; set; }
}
public class Addresses
{
public string Line1 { get; set; }
public string Line2 { get; set; }
}
XML 看起来像这样:
<Form >
<Name>John</Name>
<Employee>
<EmployeeNumber>6</EmployeeNumber>
<Addresses>
<Line1>1123</Line1>
<Line2>456</Line2>
</Addresses>
<Addresses>
<Line1>567</Line1>
<Line2>8798</Line2>
</Addresses>
</Employee>
</Form>
我可以成功序列化 Form/Employee 级别,但地址列表没有反序列化并且是空的。知道为什么它不起作用吗?
你没有post你是如何尝试反序列化的,但下面的代码让我成功地反序列化了所有东西,而没有改变你的类中的任何东西:
string xml = File.ReadAllText("XMLFile1.xml");
XmlSerializer serializer = new XmlSerializer(typeof(MyXML));
using (StringReader reader = new StringReader(xml))
{
var myXml = (MyXML)serializer.Deserialize(reader);
}
我正在尝试将具有对象列表的 XML 反序列化为 C# 对象。我简化了 XML,它的结构如下所示:
[Serializable, XmlRoot("Form")]
public class MyXML
{
public string Name { get; set; }
[XmlElement("Employee")]
public List<Employee> employeeList;
}
public class Employee
{
public string EmployeeNumber { get; set; }
[XmlElement("Addresses")]
public List<Addresses> AddressesList { get; set; }
}
public class Addresses
{
public string Line1 { get; set; }
public string Line2 { get; set; }
}
XML 看起来像这样:
<Form >
<Name>John</Name>
<Employee>
<EmployeeNumber>6</EmployeeNumber>
<Addresses>
<Line1>1123</Line1>
<Line2>456</Line2>
</Addresses>
<Addresses>
<Line1>567</Line1>
<Line2>8798</Line2>
</Addresses>
</Employee>
</Form>
我可以成功序列化 Form/Employee 级别,但地址列表没有反序列化并且是空的。知道为什么它不起作用吗?
你没有post你是如何尝试反序列化的,但下面的代码让我成功地反序列化了所有东西,而没有改变你的类中的任何东西:
string xml = File.ReadAllText("XMLFile1.xml");
XmlSerializer serializer = new XmlSerializer(typeof(MyXML));
using (StringReader reader = new StringReader(xml))
{
var myXml = (MyXML)serializer.Deserialize(reader);
}