Example #1
0
    public XmlTestObject WithXmlReader()
    {
        using (MemoryStream ms = new MemoryStream(data))
            using (XmlTextReader reader = new XmlTextReader(ms))
            {
                XmlTestObject obj = new XmlTestObject();
                obj.People = new List <Person>(2);

                while (reader.Read())
                {
                    if (!reader.IsStartElement())
                    {
                        continue;
                    }

                    if (reader.LocalName != "Person")
                    {
                        continue;
                    }

                    Person p = new Person();

                    while (reader.Read())
                    {
                        switch (reader.LocalName)
                        {
                        case "Name":
                            p.Name = reader.ReadString();
                            break;

                        case "Age":
                            p.Age = reader.ReadElementContentAsInt();
                            break;

                        case "IsMissing":
                            p.IsMissing = reader.ReadElementContentAsBoolean();
                            break;
                        }

                        if (reader.LocalName == "Person" && reader.NodeType == XmlNodeType.EndElement)
                        {
                            break;
                        }
                    }

                    obj.People.Add(p);
                }

                return(obj);
            }
    }
        public void TestToDataType()
        {
            IRestDataSerializer serializer = new XmlRestDataSerializer();

            XmlTestObject obj = new XmlTestObject()
            {
                field1 = "1",
                field2 = 2,
                field3 = true
            };

            string result = serializer.ToDataType <XmlTestObject>(obj);

            Assert.AreEqual <string>("<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<XmlTestObject xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n  <field1>1</field1>\r\n  <field2>2</field2>\r\n  <field3>true</field3>\r\n</XmlTestObject>", result);
        }