是否可以将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

回到顶部