Как сериализировать DataTable к строке?

Недавно я был в потребности сериализировать a DataTable как строка для последующей обработки (хранящий в файле).

Таким образом, я спросил меня: Как сериализировать DataTable в строку?

13
задан skaffman 11 February 2010 в 13:58
поделиться

2 ответа

Вот код, который я написал для выполнения задачи сериализации DataTable в строку:

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

Надеюсь, это будет полезно кому-то где-то там.

(Пожалуйста, обратите внимание, что я спрашивал в прошлом, можно ли публиковать сниппеты, и получил ответ, что это должно быть нормально; поправьте меня, если я не прав - спасибо!)

11
ответ дан 1 December 2019 в 21:52
поделиться

Я бы предложил НЕ сериализовать DataTable и использовать настраиваемые сущности для сохранения / контрактов, чтобы избежать разницы в деталях реализации между версиями .Net . XML-схема класса DataTable - это недокументированная деталь реализации, на которую не следует полагаться.

2
ответ дан 1 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: