Skip to content

Instantly share code, notes, and snippets.

@melvinlee
Created December 22, 2014 06:26
Show Gist options
  • Save melvinlee/7d7348c0b77c3ba08342 to your computer and use it in GitHub Desktop.
Save melvinlee/7d7348c0b77c3ba08342 to your computer and use it in GitHub Desktop.
Provide static methods for Xml Serialization and Deserialization
/**************************************************************************************
Version: 1.0
Provide static methods for Xml Serialization and Deserialization
***************************************************************************************/
using System;
using System.IO;
using System.Xml.Serialization;
public static class XmlSerialize
{
public static bool Serialize<T>(T obj, string fileName) where T : class
{
try
{
using (var streamwriter = new StreamWriter(fileName))
{
var xmlserializer = new XmlSerializer(typeof(T));
xmlserializer.Serialize(streamwriter, obj);
streamwriter.Close();
return true;
}
}
catch (Exception e)
{
throw new Exception(e.Message, e.InnerException);
}
}
public static T DeSerialize<T>(string fileName) where T : class
{
try
{
if (!File.Exists(fileName))
return Activator.CreateInstance<T>();
using (var filestream = new FileStream(fileName, FileMode.Open))
{
var xmlserializer = new XmlSerializer(typeof(T));
var newObject = (T)xmlserializer.Deserialize(filestream);
filestream.Close();
return newObject;
}
}
catch (Exception exp)
{
throw new Exception(exp.Message, exp.InnerException);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment