Пример #1
0
        public void TestResultTableSerialization()
        {
            var table = new ResultTable();

            table.Columns.Add(new ResultColumnHeader("a", typeof(int)));
            table.Columns.Add(new ResultColumnHeader("b", typeof(string)));
            table.Columns.Add(new ResultColumnHeader("c", typeof(string)));
            var row1 = table.NewRow();

            row1.Add(new object[] { 1, "abc", "DEF" });
            table.Rows.Add(row1);
            var row2 = table.NewRow();

            row2.Add(new object[] { 2, DBNull.Value, "xyz" });
            table.Rows.Add(row2);

            string xmlRes;

            using (var memStm = new MemoryStream())
            {
                var types = new List <Type> {
                    typeof(DBNull)
                };
                var serializer = new DataContractSerializer(typeof(ResultTable), types);
                var settings   = new XmlWriterSettings {
                    Indent = true
                };

                using (var w = XmlWriter.Create(memStm, settings))
                    serializer.WriteObject(w, table);

                memStm.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(memStm))
                    xmlRes = streamReader.ReadToEnd();
            }

            var jsonRes = JsonConvert.SerializeObject(table, Newtonsoft.Json.Formatting.Indented);

            Assert.NotNull(xmlRes);
            Assert.NotNull(jsonRes);

            output.WriteLine(table.ToString());
            output.WriteLine(xmlRes);
            output.WriteLine(jsonRes);
        }