Rumah >pembangunan bahagian belakang >C++ >Bolehkah XmlSerializer Deserialize XML ke dalam Senarai?
XmlSerializer and List
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>
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>
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>
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!