Я обнаружил, что DataTable.WriteXml()
действительно не записывает тип столбцов в сгенерированный код XML! Итак, как я могу различить guish между 32- и 64-разрядными целыми числами?
Вот мой код:
Int32 i32 = 12345678;
Int64 i64 = 12345678901234567;
DataTable p = new DataTable();
p.TableName = "Parameters";
p.Columns.Add("ColInt", i32.GetType());
p.Columns.Add("ColLong", i64.GetType());
DataRow r = p.NewRow();
r["ColInt"] = i32;
r["ColLong"] = i64;
p.Rows.Add(r);
StringWriter sw = new StringWriter();
p.WriteXml(sw);
string x = sw.ToString();
И это вывод XML. Вы можете ясно видеть, что тип двух столбцов (ColInt, ColLong) не записан в код XML!
<DocumentElement>
<Parameters>
<ColInt>12345678</ColInt>
<ColLong>12345678901234567</ColLong>
</Parameters>
</DocumentElement>
Есть ли решение для этого?