public void TestXmlDocumentSeiralization()
{
var objTree = new ObjectTree
{
Foo = "Foo1",
Bar = 1,
Nested = new List<object>()
};
objTree.Nested.AddRange(new[]
{
new ObjectTree{ Foo = "Foo2", Bar = 2},
new ObjectTree{ Foo = "Foo3", Bar = 3},
});
XmlDocument xmlDoc = objTree.ToXmlDocument();
string xml = xmlDoc.ToXml();
Assert.IsNotNull(xml);
XmlNode parentElem = xmlDoc.DocumentElement;
objTree.SerializeInto(parentElem);
xml = xmlDoc.ToXml();
Assert.IsNotNull(xml);
xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
ObjectTree newObjectTree = xmlDoc.Deserialize<ObjectTree>();
Assert.IsNotNull(newObjectTree);
ObjectTree nested = newObjectTree.AnyXml.Deserialize<ObjectTree>();
Assert.AreEqual(1, nested.Bar);
Assert.AreEqual(objTree.Nested.Count, nested.Nested.Count);
}