Using XmlAttributeOverrides with XmlSerializer : Xml Atrributes « XML « C# / CSharp 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());
        }
    }








30.10.Xml Atrributes
30.10.1.Creates an attribute and adds it to an XML document.
30.10.2.Removes an attribute from the document.
30.10.3.The following example adds an attribute to an element.
30.10.4.XmlTextReader: move to content and move to first attribute
30.10.5.XmlTextReader: read all attributes
30.10.6.Using XmlAttributeOverrides with XmlSerializer
30.10.7.If it is an Attribute
30.10.8.Write attribute value