Aquí está el código que he escrito para llevar a cabo la tarea de la serialización de un DataTable
en una cadena:
public static string SerializeTableToString(DataTable table)
{
if (table == null)
{
return null;
}
else
{
using (var sw = new StringWriter())
using (var tw = new XmlTextWriter(sw))
{
// Must set name for serialization to succeed.
table.TableName = @"MyTable";
// --
tw.Formatting = Formatting.Indented;
tw.WriteStartDocument();
tw.WriteStartElement(@"data");
((IXmlSerializable)table).WriteXml(tw);
tw.WriteEndElement();
tw.WriteEndDocument();
// --
tw.Flush();
tw.Close();
sw.Flush();
return sw.ToString();
}
}
}
Esperemos que esto es útil para alguien en algún lugar.
(Observe por favor que asked in the past si es OK para enviar fragmentos y se replica que éste debería estar bien; me corrija si estoy equivocado en la que - gracias!)
-1: Use 'XmlWriter.Create' en lugar de' new XmlTextWriter() ' –
@Uwe Keim: Sí, está bien publicar fragmentos de código, pero aún así debe seguir el formato de pregunta/respuesta del sitio. Su pregunta sobre la serialización de una tabla de datos está bien, pero el fragmento de código debe publicarse por separado como una * respuesta *. Eso seguiría la guía de preguntas y respuestas, y también alentaría a otros a publicar sus propias respuestas. –
¿Debería cambiarlo ahora, Bill? ¿O cuidar la guía para la próxima vez que publique? –