Pega tu C# a la izquierda y haz clic en "Convertir" — lo transformamos en XMLPega código C#

Qué hace esta herramienta

Si alguna vez has tenido que montar un payload XML que refleje una clase C# — para una llamada SOAP, un archivo de configuración, un contrato WCF o una fixture de test — ya sabes todo el boilerplate que supone. Pega el C# aquí y recibes XML bien formado en una pasada. Un único inicializador de objeto, un archivo de modelos completo con varias clases o algo profundamente anidado — mismo resultado: un documento XML completo con cada propiedad preservada.

Esto no es un reemplazo tonto de strings. El convertidor sabe cómo serializa C# realmente a XML: los sufijos decimal como 49.99m pierden la m, DateTime y DateTimeOffset salen como strings ISO-8601, Guid se vuelve un string hex estándar 8-4-4-4-12, los nullables con valor null se vuelven elementos vacíos, y las colecciones siguen la misma forma que emitiría XmlSerializer — cada List<T> se convierte en un elemento contenedor con un hijo por item, con el nombre del tipo del elemento.

Los atributos de serialización también se respetan. [XmlRoot("x")] renombra el elemento raíz, [XmlElement("x")] renombra un hijo, [XmlAttribute("x")] emite la propiedad como atributo en lugar de como elemento, y [XmlIgnore] la descarta. [DataMember(Name="x")] en clases DataContract funciona igual. Si pegas varias clases, cada una sale en el output con los tipos anidados expandidos y las propiedades heredadas incluidas. Nada se descarta en silencio.

Cómo usarla

Tres pasos. Funciona igual si pegas cinco líneas o un archivo de modelos entero.

1

Pega tu C# (o prueba el ejemplo)

Mete tu C# en el editor de la izquierda tal cual. Un inicializador de objeto, una definición de clase completa, varias clases o tipos anidados — todo vale. Haz clic en Load Sample si quieres ver primero un ejemplo realista.

No hace falta quitar comentarios, eliminar atributos ni limpiar la sintaxis C#. Deja el código como lo ves en tu IDE. Solo pega.

2

Dale a Convertir

Haz clic en el botón verde Convert. La herramienta lee el C#, preserva cada clase y propiedad, y construye el XML en una sola pasada. Verás un indicador de carga breve mientras procesa.

3

Copia el XML

El panel de la derecha se llena con XML indentado y bien formado que aceptará cualquier parser XML que cumpla el estándar. Cópialo directo a tu request SOAP, archivo de config, fixture de test o documentación.

Cuándo viene bien de verdad

Montar fixtures SOAP / WCF

Tienes un contrato de request C# y necesitas un body XML para meter en SoapUI o Postman. Pega la clase, obtén el XML, sigue adelante.

Arrancar archivos de config

Una clase Settings con 40 propiedades se convierte en una plantilla XML lista para editar para app.config, web.config o cualquier almacén de config basado en XML — sin boilerplate escrito a mano.

Mantener los docs sincronizados

Genera ejemplos XML para un README, una referencia de API o documentación de esquemas XSD directamente desde tus modelos reales, para que los docs coincidan con el código.

Sembrar datos de prueba

Convierte los inicializadores de objetos de tus tests unitarios en archivos XML seed para tests de integración, mock servers o sistemas legacy que siguen hablando XML.

Preguntas frecuentes

¿Puedo pegar varias clases a la vez?

Sí — pega un archivo entero. Cada clase de nivel superior sale con los tipos anidados expandidos y las propiedades heredadas de las clases base incluidas. No se descarta nada.

¿Respeta atributos como [XmlElement], [XmlAttribute] y [XmlIgnore]?

Sí. [XmlRoot("x")] renombra el elemento raíz, [XmlElement("x")] renombra un hijo, [XmlAttribute("x")] emite la propiedad como atributo del padre, y [XmlIgnore] la descarta por completo. [DataMember(Name="x")] en clases DataContract también renombra el elemento. Esto coincide con lo que haría XmlSerializer.

¿Cómo maneja decimal, DateTime, Guid y los nullables?

Los decimales (49.99m) pierden el sufijo y se vuelven texto numérico puro. DateTime y DateTimeOffset salen como strings ISO-8601. Guid es un string hex estándar 8-4-4-4-12. TimeSpan se convierte en una duración ISO-8601 o HH:mm:ss. Los nullables con valor null se vuelven elementos vacíos en vez de descartarse — así la forma se mantiene consistente.

¿Y las clases anidadas, listas y diccionarios?

List<T>, arrays, HashSet<T> e IEnumerable<T> se vuelven elementos contenedores con un hijo por item, con el nombre del tipo del elemento — un List<OrderItem> Items se transforma en <Items><OrderItem/><OrderItem/></Items>. Dictionary<K,V> se vuelve un contenedor de <Entry><Key/><Value/></Entry>. Los inicializadores de objeto anidados se expanden como elementos anidados con cada campo intacto.

¿Se guarda mi código?

Tu código se envía al backend para la conversión y no se persiste — no registramos el payload. Como siempre con herramientas online, si el código es realmente sensible, échale un vistazo antes de pegarlo.

¿Y si el C# tiene algo raro — métodos, delegates, IntPtr?

Esos salen como elementos vacíos en vez de romper toda la conversión, así que el resto del modelo pasa igual. Si el código en sí tiene errores de sintaxis, arregla primero los obvios — el parser es tolerante, pero no mago.

Otras herramientas que puedes necesitar

C# a XML es solo una pieza del rompecabezas. Estas herramientas encajan bien con ella: