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中文網其他相關文章!