C# XML反序列化到对象列表
在某些情况下,您可能需要将XML反序列化为结构化数据格式,例如对象列表。本文探讨实现此特定反序列化的可能性和必要步骤。
假设需要将以下XML转换为List<User>
:
<code class="language-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></code>
为了实现此转换,您可以使用XmlSerializer
类。但是,为了适应XML的结构,需要稍作修改。不是直接反序列化到List<User>
,而是使用一个包含列表的中间类。
以下是封装类的示例实现:
<code class="language-csharp">[XmlRoot("user_list")] public class UserList { public UserList() { Items = new List<User>(); } [XmlElement("user")] public List<User> Items { get; set; } }</code>
有了UserList
类,反序列化过程就变得很简单了:
<code class="language-csharp">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);</code>
这种扩展的列表序列化提供了一种更简洁、更通用的方法,用于将XML反序列化为分层结构。
以上是如何在 C# 中将 XML 反序列化为对象列表?的详细内容。更多信息请关注PHP中文网其他相关文章!