Memproses mesej rangkaian dengan cekap: tukar rentetan XML kepada objek C#
Dalam komunikasi rangkaian, sangat biasa menggunakan format XML untuk bertukar data. Walau bagaimanapun, untuk memproses mesej XML ini dengan berkesan dalam C#, ia perlu ditukar kepada objek C# yang sepadan untuk manipulasi mudah.
Penyelesaian:
Alat xsd.exe yang disediakan oleh Microsoft (termasuk dalam Windows SDK) boleh mencapai penukaran ini. Alat ini menjana kelas C# menggunakan fail Definisi Skema XML (XSD).
Panduan langkah demi langkah:
Buat fail XSD (langkah 1):
Buat fail XSD (yourfile.xsd) daripada mesej XML menggunakan arahan berikut:
<code>xsd yourfile.xml</code>
Jana kelas C# (langkah 2):
Gunakan alat xsd.exe sekali lagi untuk menjana kelas C# (yourfile.cs) berdasarkan fail XSD:
<code>xsd yourfile.xsd /c</code>
Gunakan siri XML untuk memproses mesej:
Selepas menjana kelas C#, anda boleh menggunakan XmlSerializer untuk menyahsiri rentetan XML yang diterima menjadi contoh kelas yang dijana. Ini memudahkan untuk mengakses dan memanipulasi data mesej dalam aplikasi C#.
Coretan kod berikut menunjukkan proses ini:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg)); msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
Kaedah lain:
XmlSerializer bukan sahaja boleh membaca XML daripada fail untuk penyahserikatan, tetapi juga menyahsiri daripada mana-mana strim, termasuk strim memori atau StringReaders. Ini memberikan fleksibiliti apabila memproses data XML daripada sumber yang berbeza:
Strim memori:
<code> MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString)); msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>
Pembaca Rentetan:
<code> StringReader rdr = new StringReader(inputString); msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>
Ini membolehkan komunikasi rangkaian berasaskan XML disepadukan dengan lancar dengan asas kod C# anda, membolehkan pemprosesan dan pengekstrakan data yang cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan XML dengan Cekap kepada Objek C# untuk Pemprosesan Mesej Rangkaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!