Rumah > pembangunan bahagian belakang > C++ > Bolehkah XmlSerializer Deserialize XML ke dalam Senarai?

Bolehkah XmlSerializer Deserialize XML ke dalam Senarai?

Linda Hamilton
Lepaskan: 2025-01-13 09:11:44
asal
797 orang telah melayarinya

Can XmlSerializer Deserialize XML into a List?

XmlSerializer and List Deserialisasi

Bolehkah XmlSerializer menyahsiri data XML terus ke dalam List<T>? Mari kita periksa ini dengan sampel struktur XML dan kelas C# yang sepadan.

Contoh 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>
Salin selepas log masuk

Kelas Pengguna C#:

<code class="language-csharp">public class User
{
   [XmlElement("id")]
   public Int32 Id { get; set; }

   [XmlElement("name")]
   public String Name { get; set; }
}</code>
Salin selepas log masuk

Penyahserialisasian terus ke dalam List<User> tidak disokong secara langsung oleh XmlSerializer. Walau bagaimanapun, penyelesaian mudah mencapai ini.

Penyelesaian: Membungkus Senarai

Penyelesaian melibatkan mencipta kelas pembalut yang mengandungi 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>
Salin selepas log masuk

Dengan menggunakan kelas UserListWrapper ini, penyahserikatan menjadi mudah. XmlSerializer akan mengisi senarai Users dalam pembungkus. Selepas penyahserikatan, anda kemudian boleh mengakses List<User> daripada harta Users pembungkus. Tatasusunan (User[]) juga boleh digunakan dan bukannya senarai dalam kelas pembalut, bergantung pada pilihan anda.

Atas ialah kandungan terperinci Bolehkah XmlSerializer Deserialize XML ke dalam Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan