Reader Level:
Articles

Serializing and Deserializing XML String

By Sonu Chauhan on July 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.
  • 2
  • 0
  • 205354
Download Files:
 

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", "http://www.w3.org/2001/XMLSchema");
ns.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
return ns;

}

 //Returns the target namespace for the serializer.
public static string TargetNamespace
{

Get
{

return http://www.w3.org/2001/XMLSchema;
}

}

 //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);
xmlReader.Close();
stringReader.Close();
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());
xmlWriter.Close();
memStream.Close();
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;

}

Sonu Chauhan

Sonu holds B. Sc. (Mathmatics, Physics & Statistics) and MCA (Master's of Computer Applications) degrees. Currently he is working with Merrill Lynch. India and has extensive experience in web technologies using .NET and ... Read more

COMMENT USING

Trending up