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:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
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>
Ini mencipta yourfile.xsd
. Seterusnya, susun XSD ini ke dalam kelas C#:
<code class="language-bash">xsd yourfile.xsd /c</code>
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>
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>
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>
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!