Maison > développement back-end > C++ > Comment convertir des chaînes XML en objets C# ?

Comment convertir des chaînes XML en objets C# ?

Linda Hamilton
Libérer: 2025-01-20 08:21:13
original
196 Les gens l'ont consulté

How to Convert XML Strings to C# Objects?

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 :

  • Systèmes 32 bits : C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
  • Systèmes 64 bits : C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
  • Windows 10 et versions ultérieures : 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>
Copier après la connexion

Cela crée yourfile.xsd. Ensuite, compilez ce XSD dans une classe C# :

<code class="language-bash">xsd yourfile.xsd /c</code>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal