Collez votre C# à gauche et cliquez sur "Convertir" — on le transforme en XMLCollez votre code C#

Ce que fait cet outil

Si vous avez déjà dû fabriquer une charge XML à la main qui reflète une classe C# — pour un appel SOAP, un fichier de config, un contrat WCF ou une fixture de test — vous savez à quel point c'est pénible. Collez le C# ici et vous récupérez du XML bien formé d'un coup. Un simple initialiseur d'objet, un fichier de modèle complet avec plusieurs classes ou quelque chose de profondément imbriqué — même résultat : un document XML complet avec toutes les propriétés préservées.

Ce n'est pas un simple remplacement de chaînes. Le convertisseur sait comment C# sérialise vraiment en XML : les suffixes decimal comme 49.99m perdent le m, DateTime et DateTimeOffset sortent en chaînes ISO-8601, Guid devient une chaîne hex standard au format 8-4-4-4-12, les nullables à null deviennent des éléments vides, et les collections suivent exactement la forme que produirait XmlSerializer — chaque List<T> devient un élément conteneur avec un enfant par item, nommé d'après le type de l'élément.

Les attributs de sérialisation sont respectés aussi. [XmlRoot("x")] renomme l'élément racine, [XmlElement("x")] renomme un enfant, [XmlAttribute("x")] émet la propriété comme un attribut au lieu d'un élément, et [XmlIgnore] la supprime. [DataMember(Name="x")] sur les classes DataContract fonctionne pareil. Si vous collez plusieurs classes, chacune ressort dans la sortie avec les types imbriqués développés et les propriétés héritées intégrées. Rien ne disparaît silencieusement.

Comment l'utiliser

Trois étapes. Même principe que vous colliez cinq lignes ou un fichier de modèle entier.

1

Collez votre C# (ou essayez l'exemple)

Mettez votre C# dans l'éditeur de gauche tel quel. Un initialiseur d'objet, une définition de classe complète, plusieurs classes ou des types imbriqués — tout fonctionne. Cliquez sur Load Sample si vous voulez voir un exemple réaliste d'abord.

Pas besoin de retirer les commentaires, d'enlever les attributs ou de nettoyer la syntaxe C#. Laissez le code comme il apparaît dans votre IDE. Collez, c'est tout.

2

Cliquez sur Convertir

Cliquez sur le bouton vert Convert. L'outil lit le C#, préserve chaque classe et chaque propriété, et construit le XML en une seule passe. Un petit indicateur de chargement s'affiche pendant le traitement.

3

Copiez le XML

Le panneau de droite se remplit de XML indenté et bien formé, accepté par n'importe quel parseur XML conforme à la norme. Copiez-le directement dans votre requête SOAP, fichier de config, fixture de test ou documentation.

Quand ça sert vraiment

Créer des fixtures SOAP / WCF

Vous avez un contrat de requête C# et il vous faut un body XML à coller dans SoapUI ou Postman. Collez la classe, récupérez le XML, passez à autre chose.

Démarrer des fichiers de config

Une classe Settings avec 40 propriétés devient un template XML prêt à éditer pour app.config, web.config ou n'importe quel stockage de config basé sur XML — sans boilerplate à taper à la main.

Garder la doc synchronisée

Générez des exemples XML pour un README, une référence d'API ou une documentation de schéma XSD directement depuis vos modèles réels, pour que la doc corresponde au code.

Alimenter des données de test

Transformez les initialiseurs d'objets de vos tests unitaires en fichiers XML de seed pour les tests d'intégration, les mock servers ou les systèmes legacy qui parlent encore XML.

Questions fréquentes

Je peux coller plusieurs classes d'un coup ?

Oui — collez un fichier entier. Chaque classe de premier niveau ressort avec les types imbriqués développés et les propriétés héritées des classes de base incluses. Rien n'est abandonné.

Les attributs comme [XmlElement], [XmlAttribute] et [XmlIgnore] sont-ils respectés ?

Oui. [XmlRoot("x")] renomme l'élément racine, [XmlElement("x")] renomme un enfant, [XmlAttribute("x")] émet la propriété comme un attribut du parent, et [XmlIgnore] la supprime totalement. [DataMember(Name="x")] sur les classes DataContract renomme aussi l'élément. C'est exactement ce que ferait XmlSerializer.

Comment sont gérés decimal, DateTime, Guid et les nullables ?

Les decimals (49.99m) perdent leur suffixe et deviennent du texte numérique pur. DateTime et DateTimeOffset sortent en chaînes ISO-8601. Guid devient une chaîne hex standard au format 8-4-4-4-12. TimeSpan devient une durée ISO-8601 ou HH:mm:ss. Les nullables à null deviennent des éléments vides plutôt que d'être supprimés — la forme reste cohérente.

Et les classes imbriquées, listes et dictionnaires ?

List<T>, les tableaux, HashSet<T> et IEnumerable<T> deviennent des éléments conteneurs avec un enfant par item, nommé d'après le type de l'élément — un List<OrderItem> Items devient <Items><OrderItem/><OrderItem/></Items>. Dictionary<K,V> devient un conteneur de <Entry><Key/><Value/></Entry>. Les initialiseurs d'objets imbriqués sont développés en éléments imbriqués avec chaque champ intact.

Est-ce que mon code est stocké ?

Votre code est envoyé au backend pour la conversion et n'est pas conservé — on ne journalise pas la charge. Comme toujours avec les outils en ligne, si le code est vraiment sensible, jetez-y un œil avant de coller.

Et si le C# contient quelque chose d'inhabituel — méthodes, delegates, IntPtr ?

Ces éléments sortent sous forme d'éléments vides plutôt que de faire planter toute la conversion, comme ça le reste de votre modèle passe quand même. Si le code lui-même a des erreurs de syntaxe, corrigez d'abord les plus évidentes — le parseur est tolérant, pas magicien.

Autres outils qui peuvent servir

C# vers XML n'est qu'une pièce du puzzle. Voici les outils qui vont bien avec :