XML C# Tutorial

using System;
using System.IO;
using System.Reflection;
using System.Xml.Serialization;
    public class Customer
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string EmailAddress { get; set; }
        public override string ToString()
        {
            return string.Format("{0} {1}\nEmail:   {2}",FirstName, LastName, EmailAddress);
        }
    }
    public class Tester
    {
        static void Main()
        {
            Customer c1 = new Customer{
                              FirstName = "A",
                              LastName = "G",
                              EmailAddress = "o@a.com"
                          };
            XmlAttributeOverrides overrides = new XmlAttributeOverrides();
            Type customerType = typeof(Customer);
            foreach (PropertyInfo prop in customerType.GetProperties())
            {
                XmlAttributes attrs = new XmlAttributes();
                attrs.XmlAttribute = new XmlAttributeAttribute();
                overrides.Add(customerType, prop.Name, attrs);
            }
            XmlSerializer serializer = new XmlSerializer(customerType, overrides);
            StringWriter writer = new StringWriter();
            serializer.Serialize(writer, c1);
            string xml = writer.ToString();
            Console.WriteLine("Customer in XML:\n{0}\n", xml);
            Customer c2 = serializer.Deserialize(new StringReader(xml)) as Customer;
            Console.WriteLine("Customer in Object:\n{0}", c2.ToString());
        }
    }