Maison >développement back-end >C++ >Comment convertir des chaînes XML en objets C# ?
Conversion de chaîne XML C# en objet : un guide pratique
La réception de données XML via un socket nécessite souvent de les convertir en objets C# utilisables. Ce processus est rationalisé à l'aide de l'outil xsd.exe
.
Localiser xsd.exe
: cet outil est inclus avec le SDK Windows. Les chemins d'installation courants incluent :
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
(ou une version ultérieure)Génération de la classe C# :
Tout d'abord, générez un fichier de définition de schéma XML (XSD) à partir de votre exemple XML :
<code class="language-bash">xsd yourfile.xml</code>
Cela crée yourfile.xsd
. Ensuite, compilez ce XSD dans une classe C# :
<code class="language-bash">xsd yourfile.xsd /c</code>
Le fichier yourfile.cs
résultant contient une classe C# prête pour la désérialisation.
Désérialisation à l'aide de XmlSerializer :
La classe XmlSerializer
gère la conversion de la chaîne XML en votre objet C#. Voici comment désérialiser à partir de diverses sources d'entrée :
1. À partir d'un fichier :
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg)); msg resultingMessage = (msg)serializer.Deserialize(new XmlTextReader("yourfile.xml"));</code>
2. À partir d'un flux de mémoire :
<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. Depuis un StringReader :
<code class="language-csharp">XmlSerializer serializer = new XmlSerializer(typeof(msg)); StringReader rdr = new StringReader(inputString); msg resultingMessage = (msg)serializer.Deserialize(rdr);</code>
N'oubliez pas de remplacer "yourfile.xml"
et msg
par votre chemin de fichier et votre nom de classe réels, respectivement. Cette approche offre une flexibilité dans la gestion des chaînes XML reçues de diverses sources.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!