XmlSerializer
IXmlSerializable
List<T>
LinkedList<T>
DataContractSerializer
public class Foo : IXmlSerializable
{
public LinkedList<int> List { get; set; }
public XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
throw new System.NotImplementedException();
}
public void WriteXml(XmlWriter writer)
{
writer.WriteStartElement("List");
foreach (var item in List)
{
writer.WriteElementString("Item", item.ToString());
}
writer.WriteEndElement();
}
}
class Program
{
static void Main(string[] args)
{
var foo = new Foo
{
List = new LinkedList<int>(new[] { 1, 2, 3 })
};
var serializer = new XmlSerializer(foo.GetType());
serializer.Serialize(Console.Out, foo);
}
}
XmlSerializer