首頁 >後端開發 >C++ >XmlSerializer 可以將 XML 反序列化為清單嗎?

XmlSerializer 可以將 XML 反序列化為清單嗎?

Linda Hamilton
Linda Hamilton原創
2025-01-13 09:11:44760瀏覽

Can XmlSerializer Deserialize XML into a List?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn