Effiziente Verarbeitung von XML-Strings, die von Sockets empfangen werden: C#-Objektkonvertierungsleitfaden
Nach dem Empfang eines XML-Strings über einen Socket ist es sinnvoll, ihn zur weiteren Verarbeitung in ein C#-Objekt zu konvertieren. Das vom Windows SDK bereitgestellte Tool xsd.exe kann dieses Ziel problemlos erreichen.
Schritt 1: XSD-Datei generieren
Verwenden Sie xsd.exe, um die Beispiel-XML-Zeichenfolge in eine XSD-Datei zu konvertieren. Der Befehl lautet wie folgt:
<code>xsd yourfile.xml</code>
Dadurch wird eine Datei namens yourfile.xsd erstellt, die das Schema für die XML-Nachricht definiert.
Schritt 2: C#-Klasse generieren
Als nächstes konvertieren Sie die generierte XSD-Datei mit dem folgenden Befehl in eine C#-Klasse:
<code>xsd yourfile.xsd /c</code>
Dadurch wird eine Datei namens yourfile.cs generiert, die eine Klasse enthält, die zum Deserialisieren der empfangenen XML-Zeichenfolge verwendet werden kann.
Deserialisieren mit XmlSerializer
Um eine eingehende XML-Zeichenfolge zu deserialisieren, erstellen Sie eine XmlSerializer-Instanz für die generierte Klasse und übergeben ihr einen Stream oder Reader mit den XML-Daten. Hier sind einige Möglichkeiten, dies zu tun:
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg)); msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg)); MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString)); msg resultingMessage = (msg)serializer.Deserialize(memStream);</code>
<code>XmlSerializer serializer = new XmlSerializer(typeof(msg)); StringReader rdr = new StringReader(inputString); msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>
Mit diesen Schritten können Sie die eingehende XML-Zeichenfolge erfolgreich in ein C#-Objekt konvertieren, um sie einfach in C#-Code bearbeiten und verarbeiten zu können.
Das obige ist der detaillierte Inhalt vonWie konvertiert man XML-Strings mit xsd.exe und XmlSerializer in C#-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!