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:
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>
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).
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!