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();

      }

    }

  }

}