using
System;
using
System.Collections.Generic;
using
System.IO;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Xml.Serialization;
namespace
baltz
{
public
class
Utilities
{
/// <summary>
/// Will read an XML file, containing an XML-serialized object of type 't', and return the deserialize object
/// </summary>
/// <param name="fileName">The full path of the file in question</param>
/// <param name="t">The type of the object in the XML-serialized file (eg. this.GetType())</param>
/// <exception cref="FileNotFoundException"></exception>
/// <returns>An deserialize object of type 't'</returns>
public
object
ReadXML(
string
fileName, Type t)
{
if
(!File.Exists(fileName))
{
throw
new
FileNotFoundException();
}
object
xmlObject;
using
(FileStream reader =
new
FileStream(fileName, FileMode.Open, FileAccess.Read))
{
XmlSerializer serializer =
new
XmlSerializer(t);
xmlObject = serializer.Deserialize(reader);
}
return
xmlObject;
}
/// <summary>
/// Will XML-serialize 'item' and write it to 'fileName'
/// </summary>
/// <param name="item">The object in question. Must be XML-serializeable, and declared as such</param>
/// <param name="fileName">The full path of the file in question</param>
public
void
WriteXML(
object
item,
string
fileName)
{
if
(File.Exists(fileName))
{
File.Delete(fileName);
}
XmlSerializer serializer =
new
XmlSerializer(item.GetType());
using
(TextWriter writer =
new
StreamWriter(fileName))
{
serializer.Serialize(writer, item);
}
}
}
}