Just thought I would post this for everyone else to use, alter, review, whatever....
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace Catalyst.UtilityClasses
{
public class Serializer
{
public static object Deserialize(string file, Type type)
{
object obj;
XmlReader reader = null;
FileStream fs = null;
try
{
// get a serializer to serialize the passed in object type
XmlSerializer serializer = new XmlSerializer(type);
// open the file stream
fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
// create an xml reader from the file stream
reader = new XmlTextReader(fs);
// use the Deserialize method to restore the object's state.
obj = serializer.Deserialize(reader);
}
finally
{
// close any open streams
if (fs != null)
fs.Close();
if (reader != null)
reader.Close();
}
return obj;
}
public static void Serialize(string file, object obj)
{
TextWriter writer = null;
try
{
// get a serializer to serialize the passed in object type
XmlSerializer serializer = new XmlSerializer(obj.GetType());
writer = new StreamWriter(file);
serializer.Serialize(writer, obj);
}
finally
{
// close any open streams
if (writer != null)
writer.Close();
}
}
}
}