using System.Collections.Generic;
using System.Xml.Serialization;
[XmlArrayItem("Parameter")]
public List<Parameter> lista;
public class Parameter : IXmlSerializable
public void WriteXml(XmlWriter writer)
writer.WriteElementString("name",name);
writer.WriteElementString("val",val.ToString());
public void ReadXml(XmlReader reader)
reader.ReadToDescendant("name");
name = reader.ReadElementContentAsString();
val = reader.ReadElementContentAsInt();
public XmlSchema GetSchema()
public static void Main()
root.lista = new List<Parameter>();
Parameter pa=new Parameter();
Parameter pb=new Parameter();
var lNamespaces = new XmlSerializerNamespaces();
var lSerialiser = new XmlSerializer(root.GetType());
string xml = GetXml(root, lSerialiser, lNamespaces);
Console.WriteLine("Serialized XML: ");
Console.WriteLine("-----------------------------------");
var root2 = (Root)lSerialiser.Deserialize(new StringReader(xml));
Console.WriteLine(root2.lista.Count);
string xml2 = GetXml(root2, lSerialiser, lNamespaces);
Console.WriteLine("Deserialized and re-serialized XML: ");
private static string GetXml<T>(T lPersonList, XmlSerializer lSerialiser, XmlSerializerNamespaces lNamespaces)
var sb = new StringBuilder();
using (var writer = new StringWriter(sb))
lSerialiser.Serialize(writer, lPersonList, lNamespaces);