Serializing and Deserializing XML String

Serialization is handled by System.Runtime.Serialization namespace. To serialize an object, you need to create two things, stream to contain the serialized objects and a formatter to serialize the objects into the stream.

So here in this sample we will see how to serialize XML document into an object.

//This will returns the set of included namespaces for the serializer.
public static XmlSerializerNamespaces GetNamespaces()
    XmlSerializerNamespaces ns;
    ns = new XmlSerializerNamespaces();
    ns.Add("xs", "");
    ns.Add("xsi", "");
    return ns;
//Returns the target namespace for the serializer.
public static string TargetNamespace
//Creates an object from an XML string.
public static object FromXml(string Xml, System.Type ObjType)
    XmlSerializer ser;
    ser = new XmlSerializer(ObjType);
    StringReader stringReader;
    stringReader = new StringReader(Xml);
    XmlTextReader xmlReader;
    xmlReader = new XmlTextReader(stringReader);
    object obj;
    obj = ser.Deserialize(xmlReader);
    return obj;

//Serializes the <i>Obj</i> to an XML string.
public static string ToXml(object Obj, System.Type ObjType)
    XmlSerializer ser;
    ser = new XmlSerializer(ObjType, SerializeObject.TargetNamespace);
    MemoryStream memStream;
    memStream = new MemoryStream();
    XmlTextWriter xmlWriter;
    xmlWriter = new XmlTextWriter(memStream, Encoding.UTF8);
    xmlWriter.Namespaces = true;
    ser.Serialize(xmlWriter, Obj, SerializeObject.GetNamespaces());
    string xml;
    xml = Encoding.UTF8.GetString(memStream.GetBuffer());
    xml = xml.Substring(xml.IndexOf(Convert.ToChar(60)));
    xml = xml.Substring(0, (xml.LastIndexOf(Convert.ToChar(62)) + 1));
    return xml;


Similar Articles