Translate

Thursday, December 12, 2013

Serializer helper


/// Helper class for serializing / deserializing
/// var helper=new XmlSerializerHelper();
/// object
public class XmlSerializerHelper
{
     public Type _type;

     public XmlSerializerHelper()
     {
         _type = typeof(T);
     }

     /// Returns serialized xml string
     public string GetXml(object objectToSerialize)
     {
         if (objectToSerialize == null)
         {
             return string.Empty;
         }
         else
         {
             var stringWriter = new StringWriter();
             XmlWriterSettings settings = new XmlWriterSettings();
             settings.OmitXmlDeclaration = true;
             settings.Indent = false;
             using (XmlWriter writer = XmlWriter.Create(stringWriter, settings))
             {
                 XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                 ns.Add(string.Empty, string.Empty);
                 XmlSerializer xmlSerializer = new XmlSerializer(objectToSerialize.GetType());
                 xmlSerializer.Serialize(writer, objectToSerialize, ns);
                 return stringWriter.ToString();
             }
         }
     }

     /// Returns deserialized object instance from xml
     /// xml string from data record
     /// object T
     public T GetObject(string xmlString)
     {
         T result;
         var reader = new StringReader(xmlString);
         XmlSerializer serializer = new XmlSerializer(_type);
         result = (T)serializer.Deserialize(reader);
         return result;
     }
 }