Mega Code Archive

 
Categories / C# Tutorial / XML
 

Specify the XmlRoot and XmlAttribute for XML serialization

using System; using System.Xml; using System.Xml.Serialization; using System.Collections; using System.IO; [XmlRoot("EmployeeList")] public class EmployeeList {     private ArrayList employeeList = new ArrayList();     public EmployeeList( ) {     }     [XmlElement("employee")]      public Employee[] Employees {         get {              Employee[] employees = new Employee[ employeeList.Count ];             employeeList.CopyTo( employees );             return employees;          }         set {              Employee[] employees = (Employee[])value;             employeeList.Clear();             foreach( Employee i in employees )                employeeList.Add( i );         }     }     public void AddEmployee( Employee employee ) {         employeeList.Add( employee );     }     public Employee this[string firstName] {         get {             foreach( Employee i in employeeList )                 if( i.firstName == firstName )                    return i;             throw( new Exception("Employee not found") );         }     }     public void DisplayEmployees( ) {         foreach( Employee i in employeeList )             Console.WriteLine( i );     } } public class Employee {      [XmlAttribute("firstName")]   public string  firstName;      [XmlAttribute("lastName")]    public string  lastName;      [XmlAttribute("salary")]      public double  salary;      [XmlAttribute("number")]      public int     number;           public Employee( ) {  }      public Employee( string f, string l, double s, int n ) {         firstName = f;         lastName = l;         salary = s;         number = n;      }      public override string ToString( ) {         object[] o = new object[] { firstName, lastName, salary, number };         return string.Format("{0,-5} {1,-10} ${2,5:#,###.00} {3,3}", o);      } } public class MainClass {     public static void Main( ) {         EmployeeList employList = new EmployeeList( );         employList.AddEmployee( new Employee("A","p",  123.15,100) );         employList.AddEmployee( new Employee("B","c",  712.50, 25) );         employList.AddEmployee( new Employee("C","wt", 132.35, 10) );         employList.DisplayEmployees( );         Console.WriteLine("Serialization in progress");         XmlSerializer s = new XmlSerializer( typeof( EmployeeList ) );         TextWriter w = new StreamWriter("employList.xml");         s.Serialize( w, employList );         w.Close();         Console.WriteLine("Serialization complete\n\n");         Console.WriteLine("Deserialization in progress");         EmployeeList employList2 = new EmployeeList( );         TextReader r = new StreamReader( "employList.xml" );         employList2 = (EmployeeList)s.Deserialize( r );         r.Close( );         Console.WriteLine("Deserialization complete");         employList2.DisplayEmployees();    }      } A p $123.15 100 B c $712.50 25 C wt $132.35 10 Serialization in progress Serialization complete Deserialization in progress Deserialization complete A p $123.15 100 B c $712.50 25 C wt $132.35 10