Eine DataTable in einen String serialisieren

Um eine DataTable in eine Zeichenfolge (string) zu serialisieren, um sie weiter zu verarbeiten, z.B. um in einer Datei zu speichern oder an einen Server zu übertragen, könnt Ihr folgenden Code nehmen:

public static string SerializeTableToString( DataTable table )
{
    if (table == null) return null;

    using (var sw = new StringWriter())
    using (var tw = new XmlTextWriter(sw))
    {
        table.TableName = @"MyTable"; // Ohne Name schlägt Serialisierung fehl.

        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();
    }
}

(Original-Artikel von mir auf Stack Overflow)