using System;
using System.Collections.Generic;
using System.Xml.Serialization;
public class Test
{
public static void Main()
{
Document d = new Document();
d.Placemarks = new List<Placemark>();
d.Placemarks.Add(new Placemark("Mark" + d.Placemarks.Count, "What I am..."));
d.Placemarks.Add(new Placemark("Mark" + d.Placemarks.Count, "What I am..."));
d.Placemarks.Add(new Placemark("Mark" + d.Placemarks.Count, "What I am..."));
d.Name = "Test.xml";
XmlSerializer x = new XmlSerializer(typeof(Document));
x.Serialize(System.Console.Out, d);
}
}
public class Document
{
[XmlElement("name")]
public string Name { set; get; }
[XmlElement("open")]
public int Open { set; get; }
//This will Serialize to a container <Placemarks>...</Placemarks>
public List<Placemark> Placemarks { set; get; }
}
public class Placemark
{
public Placemark() { }
public Placemark(string name, string desc)
{
Name = name;
Description = desc;
}
[XmlElement("name")]
public string Name { set; get; }
[XmlElement("description")]
public string Description { set; get; }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlhtbC5TZXJpYWxpemF0aW9uOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCURvY3VtZW50IGQgPSBuZXcgRG9jdW1lbnQoKTsKCQkKCQlkLlBsYWNlbWFya3MgPSBuZXcgTGlzdDxQbGFjZW1hcms+KCk7CgkJCgkJZC5QbGFjZW1hcmtzLkFkZChuZXcgUGxhY2VtYXJrKCJNYXJrIiArIGQuUGxhY2VtYXJrcy5Db3VudCwgIldoYXQgSSBhbS4uLiIpKTsKCQlkLlBsYWNlbWFya3MuQWRkKG5ldyBQbGFjZW1hcmsoIk1hcmsiICsgZC5QbGFjZW1hcmtzLkNvdW50LCAiV2hhdCBJIGFtLi4uIikpOwoJCWQuUGxhY2VtYXJrcy5BZGQobmV3IFBsYWNlbWFyaygiTWFyayIgKyBkLlBsYWNlbWFya3MuQ291bnQsICJXaGF0IEkgYW0uLi4iKSk7CgkJCgkJZC5OYW1lID0gIlRlc3QueG1sIjsKCQkKICAgICAgICBYbWxTZXJpYWxpemVyIHggPSBuZXcgWG1sU2VyaWFsaXplcih0eXBlb2YoRG9jdW1lbnQpKTsKCQl4LlNlcmlhbGl6ZShTeXN0ZW0uQ29uc29sZS5PdXQsIGQpOwoJfQp9CgpwdWJsaWMgY2xhc3MgRG9jdW1lbnQKewogICAgW1htbEVsZW1lbnQoIm5hbWUiKV0KICAgIHB1YmxpYyBzdHJpbmcgTmFtZSB7IHNldDsgZ2V0OyB9CgogICAgW1htbEVsZW1lbnQoIm9wZW4iKV0KICAgIHB1YmxpYyBpbnQgT3BlbiB7IHNldDsgZ2V0OyB9CgogICAgLy9UaGlzIHdpbGwgU2VyaWFsaXplIHRvIGEgY29udGFpbmVyIDxQbGFjZW1hcmtzPi4uLjwvUGxhY2VtYXJrcz4KICAgIHB1YmxpYyBMaXN0PFBsYWNlbWFyaz4gUGxhY2VtYXJrcyB7IHNldDsgZ2V0OyB9Cn0KCnB1YmxpYyBjbGFzcyBQbGFjZW1hcmsKewogICAgcHVibGljIFBsYWNlbWFyaygpIHsgfQogICAgcHVibGljIFBsYWNlbWFyayhzdHJpbmcgbmFtZSwgc3RyaW5nIGRlc2MpIAogICAgeyAKICAgICAgICBOYW1lID0gbmFtZTsgCiAgICAgICAgRGVzY3JpcHRpb24gPSBkZXNjOyAKICAgIH0KCiAgICBbWG1sRWxlbWVudCgibmFtZSIpXQogICAgcHVibGljIHN0cmluZyBOYW1lIHsgc2V0OyBnZXQ7IH0KCiAgICBbWG1sRWxlbWVudCgiZGVzY3JpcHRpb24iKV0KICAgIHB1YmxpYyBzdHJpbmcgRGVzY3JpcHRpb24geyBzZXQ7IGdldDsgfQp9