Just a short code snippet that helped me recently:
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"; // -- // http://bit.ly/a75DK7 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(); } } }
Hopefully it is useful for someone out there, too.