Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menukar Rentetan XML yang Diterima Melalui Soket ke Objek C#?

Bagaimanakah Saya Boleh Menukar Rentetan XML yang Diterima Melalui Soket ke Objek C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-20 08:31:09683semak imbas

How Can I Convert XML Strings Received Over Sockets into C# Objects?

Tukar rentetan XML yang diterima oleh soket kepada objek C#

Dalam persekitaran rangkaian, adalah perkara biasa untuk menerima rentetan XML melalui soket. Untuk menggunakan mesej XML ini dengan berkesan, ia perlu ditukar kepada objek C#.

Sampel mesej XML yang disediakan mengikut struktur tertentu:

<code class="language-xml"><msg><id>1</id><action>stop</action></msg></code>

Untuk menukar rentetan XML sedemikian kepada objek C#, ikut langkah berikut:

  1. Buat fail XSD: Pasang Windows SDK dan gunakan alat xsd.exe untuk menukar sampel XML kepada fail skema XSD. Jalankan arahan berikut:

    <code class="language-bash">xsd yourfile.xml</code>
  2. Jana kelas C#: Gunakan xsd.exe sekali lagi untuk menukar fail XSD kepada kelas C#. Jalankan arahan ini:

    <code class="language-bash">xsd yourfile.xsd /c</code>

    Ini akan menjana fail kelas C# (contohnya, yourfile.cs).

  3. Menyahsiri rentetan XML: Untuk menyahsiri rentetan XML menjadi objek C#, buat tika XmlSerializer dan gunakannya untuk menyahsiri rentetan input. Berikut ialah contoh:

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

    Sebagai alternatif, anda boleh menyahsiri daripada aliran 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>

    Atau gunakan StringReader:

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

Proses ini membolehkan anda menukar rentetan XML yang diterima melalui soket ke objek C# dengan cekap untuk pemprosesan dan manipulasi selanjutnya dalam aplikasi anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Rentetan XML yang Diterima Melalui Soket ke Objek C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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