Как заставить DataTable сериализоваться лучше? - PullRequest
1 голос
/ 14 апреля 2010

У меня есть следующий код, который сериализует DataTable в XML.

StringWriter sw = new StringWriter();
myDataTable.WriteXml(sw);

И это работает, однако, сериализованный XML выглядит так:

<NameOfTable>
    <NameOfTable>
        <ID>1</ID>
        <Name>Jack</Name>
    </NameOfTable>
    <NameOfTable>
        <ID>2</ID>
        <Name>Frank</Name>
    </NameOfTable>
</NameOfTable>

Есть ли в любом случае изменить внешний <NameOfTable>, скажем, <Records> и внутренний <NameOfTable> на <Person>?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2010

Это делает то, что вы просили. Но я не думаю, что он делает то, что вы хотите.

    DataSet ds = new DataSet("Records");
    DataTable dt = new DataTable("Person");
    ds.Tables.Add(dt);
    dt.Columns.Add("ID");
    dt.Columns.Add("Name");

    dt.Rows.Add(new object[] { 1, "Jack" });
    dt.Rows.Add(new object[] { 2, "Frank" });

    StringWriter sw = new StringWriter();
    dt.WriteXml(sw);

    MessageBox.Show(sw.ToString());
0 голосов
/ 15 апреля 2010

Перед тем как записать таблицу в XML, вы можете изменить имена столбцов в таблице данных. Не оптимально, но это будет делать то, что вы хотите.

...