Microsoft Docs

XmlSerializer Class

The XmlSerializer class provides functionality to serialize objects into XML format streams or files, and to deserialize XML data into objects.

Syntax
Members
Examples

Namespace

System.Xml.Serialization

Assembly

System.Xml.dll

Declaration

public class XmlSerializer
{
    // Constructors
    public XmlSerializer(Type type);
    public XmlSerializer(Type type, XmlAttributeOverrides overrides);
    public XmlSerializer(Type type, string defaultNamespace);
    public XmlSerializer(Type type, Type[] extraTypes);
    public XmlSerializer(Type type, XmlRootAttribute root);
    public XmlSerializer(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, string defaultNamespace);

    // Methods
    public void Serialize(Stream stream, object o);
    public void Serialize(TextWriter writer, object o);
    public void Serialize(XmlWriter xmlWriter, object o);
    public object Deserialize(Stream stream);
    public object Deserialize(TextReader textReader);
    public object Deserialize(XmlReader xmlReader);
    // …additional overloads
}

Constructors

SignatureDescription
XmlSerializer(Type type)Initializes a new instance of the XmlSerializer class for the specified type.
XmlSerializer(Type type, XmlRootAttribute root)Specifies a custom root element for the XML.
XmlSerializer(Type type, string defaultNamespace)Specifies a default XML namespace.
XmlSerializer(Type type, Type[] extraTypes)Allows serialization of extra types not directly referenced.
XmlSerializer(Type type, XmlAttributeOverrides overrides)Provides attribute overrides.

Methods

SignatureDescription
void Serialize(Stream stream, object o)Serializes the object to a Stream.
void Serialize(TextWriter writer, object o)Serializes the object to a TextWriter.
void Serialize(XmlWriter xmlWriter, object o)Serializes using an XmlWriter.
object Deserialize(Stream stream)Deserializes XML from a Stream into an object.
object Deserialize(TextReader textReader)Deserializes XML from a TextReader.
object Deserialize(XmlReader xmlReader)Deserializes XML from an XmlReader.

Example: Serialize an Object

using System;
using System.IO;
using System.Xml.Serialization;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person p = new Person { Name = "Alice", Age = 30 };
        XmlSerializer xs = new XmlSerializer(typeof(Person));

        using (FileStream fs = new FileStream("person.xml", FileMode.Create))
        {
            xs.Serialize(fs, p);
        }

        Console.WriteLine("Serialized to person.xml");
    }
}

Example: Deserialize an Object

using System;
using System.IO;
using System.Xml.Serialization;

class Program
{
    static void Main()
    {
        XmlSerializer xs = new XmlSerializer(typeof(Person));

        using (FileStream fs = new FileStream("person.xml", FileMode.Open))
        {
            Person p = (Person)xs.Deserialize(fs);
            Console.WriteLine($"{p.Name} is {p.Age} years old.");
        }
    }
}

See Also