XmlSerializer 和清單
XmlSerializer
可以將XML資料直接反序列化為List<T>
嗎?讓我們使用範例 XML 結構和對應的 C# 類別來檢查這一點。
範例 XML:
<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>
C# 使用者類別:
<code class="language-csharp">public class User { [XmlElement("id")] public Int32 Id { get; set; } [XmlElement("name")] public String Name { get; set; } }</code>
List<User>
不直接支援直接反序列化為 XmlSerializer
。 然而,一個簡單的解決方法可以實現這一點。
解決方案:包裝清單
解決方案涉及建立一個包含 List<User>
:
<code class="language-csharp">using System; using System.Collections.Generic; using System.Xml.Serialization; [XmlRoot("user_list")] public class UserListWrapper { public UserListWrapper() { Users = new List<User>(); } [XmlElement("user")] public List<User> Users { get; set; } }</code>
透過使用這個UserListWrapper
類,反序列化變得簡單。 XmlSerializer
將填充包裝器內的 Users
清單。 反序列化後,您可以從包裝器的 List<User>
屬性存取 Users
。 也可以使用陣列 (User[]
) 來取代包裝類別中的列表,具體取決於您的偏好。
以上是XmlSerializer 可以將 XML 反序列化為清單嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!