XML Serialization of an Object - C#

Overview

This article demonstrates how to serialize an object to XML

Sample Code

var myObject = new MyClass();
var xs = new XmlSerializer(myObject.GetType());
string resultXml;

using (var sw = new StringWriter())
{
    xs.Serialize(sw, myObject);
    resultXml = sw.ToString();
}

Generic Methods

public static string SerializeToXml<T>(T input)
{
    var result = string.Empty;
    var xs = new XmlSerializer(typeof(T));

    using (var sw = new StringWriter())
    {
        xs.Serialize(sw, input);
        result = sw.ToString();
    }

    return CleanXml(result);
}

public static T DeserializeFromXml<T>(string inputXml)
{
    T result = default(T);
    var xs = new XmlSerializer(typeof(T));

    using (var sr = new StringReader(inputXml))
    {
        result = (T)xs.Deserialize(sr);
        sr.Close();
    }
    return result;
}
public static string CleanXml(string inputXml)
{
    var result = inputXml;

    if (result.StartsWith("<?xml "))
    {
        var pos = result.IndexOf(">", 6);
        result = result.Substring(pos + 1).Trim();
    }

    return result;
}