是否可以将XML反序列化为List?
给定以下XML:
<?xml version="1.0"?><user_list>
<user>
<id>1</id>
<name>Joe</name>
</user>
<user>
<id>2</id>
<name>John</name>
</user>
</user_list>
和以下类:
public class User { [XmlElement("id")]
public Int32 Id { get; set; }
[XmlElement("name")]
public String Name { get; set; }
}
是否可以XmlSerializer
将xml反序列化为List<User>
?如果是这样,我将需要使用哪种类型的附加属性,或者需要使用哪些附加参数来构造XmlSerializer
实例?
User[]
如果不太理想,则可以使用数组()。
回答:
您可以轻松地 封装 列表:
using System;using System.Collections.Generic;
using System.Xml.Serialization;
[XmlRoot("user_list")]
public class UserList
{
public UserList() {Items = new List<User>();}
[XmlElement("user")]
public List<User> Items {get;set;}
}
public class User
{
[XmlElement("id")]
public Int32 Id { get; set; }
[XmlElement("name")]
public String Name { get; set; }
}
static class Program
{
static void Main()
{
XmlSerializer ser= new XmlSerializer(typeof(UserList));
UserList list = new UserList();
list.Items.Add(new User { Id = 1, Name = "abc"});
list.Items.Add(new User { Id = 2, Name = "def"});
list.Items.Add(new User { Id = 3, Name = "ghi"});
ser.Serialize(Console.Out, list);
}
}
以上是 是否可以将XML反序列化为List? 的全部内容, 来源链接: utcz.com/qa/413887.html