Heim >Backend-Entwicklung >C++ >Wie konvertiere ich XML-Strings in C#-Objekte?
C#-XML-String-zu-Objekt-Konvertierung: Ein praktischer Leitfaden
Der Empfang von XML-Daten über einen Socket erfordert häufig deren Konvertierung in verwendbare C#-Objekte. Dieser Prozess wird mit dem xsd.exe
Tool.
Suchen xsd.exe
: Dieses Tool ist im Windows SDK enthalten. Zu den gängigen Installationspfaden gehören:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin
(oder eine neuere Version)Generieren der C#-Klasse:
Generieren Sie zunächst eine XML-Schema-Definitionsdatei (XSD) aus Ihrem XML-Beispiel:
<code class="language-bash">xsd yourfile.xml</code>
Dadurch entsteht yourfile.xsd
. Als nächstes kompilieren Sie diese XSD in eine C#-Klasse:
<code class="language-bash">xsd yourfile.xsd /c</code>
Die resultierende yourfile.cs
-Datei enthält eine C#-Klasse, die zur Deserialisierung bereit ist.
Deserialisierung mit XmlSerializer:
Die Klasse XmlSerializer
übernimmt die Konvertierung des XML-Strings in Ihr C#-Objekt. So deserialisieren Sie aus verschiedenen Eingabequellen:
1. Aus einer Datei:
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg)); msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
2. Aus einem Erinnerungsstrom:
<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>
3. Von einem StringReader:
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg)); StringReader rdr = new StringReader(inputString); msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>
Denken Sie daran, "yourfile.xml"
und msg
durch Ihren tatsächlichen Dateipfad bzw. Klassennamen zu ersetzen. Dieser Ansatz bietet Flexibilität bei der Handhabung von XML-Strings, die aus verschiedenen Quellen empfangen werden.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich XML-Strings in C#-Objekte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!