Scroll To Top
Reader Level:

Serializing and Deserializing XML String

By Sonu Chauhan on Jul 20, 2006
In this article we will see how we can serialize a xml sring into an object and vice versa. You can serialize your object to a byte array and can deSerialize the byte array into an object.

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 =
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;