Heim >Backend-Entwicklung >C++ >Wie konvertiere ich XML-Strings in C#-Objekte?

Wie konvertiere ich XML-Strings in C#-Objekte?

Linda Hamilton
Linda HamiltonOriginal
2025-01-20 08:21:13163Durchsuche

How to Convert XML Strings to C# Objects?

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

optimiert

Suchen xsd.exe: Dieses Tool ist im Windows SDK enthalten. Zu den gängigen Installationspfaden gehören:

  • 32-Bit-Systeme: C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
  • 64-Bit-Systeme: C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
  • Windows 10 und höher: 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!

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