// Sample Object ----------------------------
[Serializable]
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
// Serialization Class ------------------------
public class Serializer
{
public static string GetString(MemoryStream psMemStream)
{
string lsReturn = string.Empty;
psMemStream.Position = 0;
using (StreamReader loReader = new StreamReader(psMemStream))
{
lsReturn = loReader.ReadToEnd();
}
return lsReturn;
}
public static string SerializeMessage(Object poObject)
{
string lsResponse = "";
try
{
MemoryStream loStream = new MemoryStream();
XmlSerializer loMessageSerialize = new XmlSerializer(poObject.GetType());
loMessageSerialize.Serialize(loStream, poObject);
lsResponse = GetString(loStream);
}
catch (Exception ex)
{
throw ex;
}
return lsResponse;
}
public static object DeserializeMessage(string psObjectXML, Object poObject)
{
string loResponse = string.Empty;
object loObject = new object();
try
{
XmlSerializer loMessage = new XmlSerializer(poObject.GetType());
loObject = loMessage.Deserialize(new StringReader(psObjectXML));
}
catch (Exception ex)
{
throw ex;
}
return loObject;
}
}
// How to Use ----------------------------------
Person loPerson = new Person();
loPerson.FirstName = "John";
loPerson.LastName = "Doe";
string lsXMLString = Serializer.SerializeMessage(loPerson);
MessageBox.Show(lsXMLString);
Person loPerson2 = new Person();
loPerson2 = (Person)Serializer.DeserializeMessage(lsXMLString, loPerson2);