Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar Rentetan XML kepada Objek C#?

Bagaimana untuk Menukar Rentetan XML kepada Objek C#?

Linda Hamilton
Lepaskan: 2025-01-20 08:21:13
asal
157 orang telah melayarinya

How to Convert XML Strings to C# Objects?

C# XML Rentetan kepada Penukaran Objek: Panduan Praktikal

Menerima data XML melalui soket selalunya memerlukan menukarnya menjadi objek C# yang boleh digunakan. Proses ini diperkemas menggunakan alat xsd.exe.

Cari xsd.exe: Alat ini disertakan dengan Windows SDK. Laluan pemasangan biasa termasuk:

  • Sistem 32-bit: C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
  • Sistem 64-bit: C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
  • Windows 10 dan lebih baru: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin (atau versi yang lebih baru)

Menjana Kelas C#:

Mula-mula, hasilkan fail XML Schema Definition (XSD) daripada sampel XML anda:

<code class="language-bash">xsd yourfile.xml</code>
Salin selepas log masuk

Ini mencipta yourfile.xsd. Seterusnya, susun XSD ini ke dalam kelas C#:

<code class="language-bash">xsd yourfile.xsd /c</code>
Salin selepas log masuk

Fail yourfile.cs yang terhasil mengandungi kelas C# sedia untuk penyahserikatan.

Deserialisasi menggunakan XmlSerializer:

Kelas XmlSerializer mengendalikan penukaran rentetan XML ke dalam objek C# anda. Begini cara untuk menyahsiri daripada pelbagai sumber input:

1. Daripada Fail:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
Salin selepas log masuk

2. Daripada Strim Memori:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>
Salin selepas log masuk

3. Daripada StringReader:

<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg));
StringReader rdr = new StringReader(inputString);
msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>
Salin selepas log masuk

Ingat untuk menggantikan "yourfile.xml" dan msg dengan laluan fail sebenar dan nama kelas anda, masing-masing. Pendekatan ini memberikan fleksibiliti dalam mengendalikan rentetan XML yang diterima daripada pelbagai sumber.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan XML kepada Objek C#?. 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