Heim >Backend-Entwicklung >C++ >Wie kann ich über Sockets empfangene XML-Strings in C#-Objekte konvertieren?

Wie kann ich über Sockets empfangene XML-Strings in C#-Objekte konvertieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-20 08:31:09711Durchsuche

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

Konvertieren Sie die vom Socket empfangene XML-Zeichenfolge in ein C#-Objekt

In einer Netzwerkumgebung ist es sehr üblich, XML-Strings über Sockets zu empfangen. Um diese XML-Nachrichten effektiv nutzen zu können, müssen sie in C#-Objekte konvertiert werden.

Die bereitgestellte Beispiel-XML-Nachricht folgt einer bestimmten Struktur:

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

Um eine solche XML-Zeichenfolge in ein C#-Objekt zu konvertieren, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine XSD-Datei: Installieren Sie das Windows SDK und verwenden Sie das Tool xsd.exe, um das Beispiel-XML in eine XSD-Schemadatei zu konvertieren. Führen Sie den folgenden Befehl aus:

    <code class="language-bash">xsd yourfile.xml</code>
  2. C#-Klassen generieren: Verwenden Sie xsd.exe erneut, um die XSD-Datei in C#-Klassen zu konvertieren. Führen Sie diesen Befehl aus:

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

    Dadurch wird eine C#-Klassendatei generiert (z. B. yourfile.cs).

  3. Deserialisieren einer XML-Zeichenfolge: Um eine XML-Zeichenfolge in ein C#-Objekt zu deserialisieren, erstellen Sie eine XmlSerializer-Instanz und deserialisieren Sie damit die Eingabezeichenfolge. Hier ist ein Beispiel:

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

    Alternativ können Sie aus einem Speicherstream deserialisieren:

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

    Oder verwenden Sie StringReader:

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

Mit diesem Prozess können Sie über Sockets empfangene XML-Zeichenfolgen effizient in C#-Objekte zur weiteren Verarbeitung und Bearbeitung in Ihrer Anwendung konvertieren.

Das obige ist der detaillierte Inhalt vonWie kann ich über Sockets empfangene XML-Strings in C#-Objekte konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn