using System.Xml.Serialization;
using System.Collections.Generic;
public static String SerializeObject<T>(this T toSerialize)
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
using(StringWriter textWriter = new StringWriter())
xmlSerializer.Serialize(textWriter, toSerialize);
return textWriter.ToString();
public static Object DeserializeXml(String xml, Object oObject)
Cartao card = new Cartao();
XmlSerializer oXmlSerializer = new XmlSerializer(oObject.GetType());
oObject = oXmlSerializer.Deserialize(new StringReader(xml));
public static void Main()
Cartao cartao = new Cartao();
cartao.Bandeira = "visa";
cartao.Numero = "0001000200030004";
Console.WriteLine(cartao.Bandeira);
String xml = Util.SerializeObject(cartao);
Cartao cartao2 = new Cartao();
cartao2 = (Cartao)Util.DeserializeXml(xml, cartao);
Console.WriteLine(String.Concat("cartao2.Numero: ", cartao2.Numero));
cartao2.Paises.Add(pais);
pais.Nome = "Estados Unidos";
cartao2.Paises.Add(pais);
if(cartao2.Paises.Count > 0)
foreach (Pais p in cartao2.Paises)
Console.WriteLine(String.Concat("pais ", i, ": ", p.Nome));
String xml2 = Util.SerializeObject(cartao2);
Cartao card3 = new Cartao();
card3 = (Cartao)Util.DeserializeXml(xml2, card3);
foreach (Pais p in card3.Paises)
Console.WriteLine(String.Concat("pais ", j, ": ", p.Nome));
private List<Pais> paises;