using System.Text;
namespace GlennLib;
///
/// The Serializer class, that serializes to and deserializes from XML files.
///
public static class Serializer
{
///
/// Serializes as a to XML.
///
/// The class to serialize to.
/// The object that will be serialized.
/// The serialized XML as a .
public static string Serialize(object item)
{
Type t = typeof(T);
MemoryStream memStream = new MemoryStream();
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(t);
serializer.Serialize(memStream, item);
string xml = Encoding.UTF8.GetString(memStream.ToArray());
memStream.Flush();
memStream.Close();
memStream.Dispose();
return xml;
}
///
/// Deserialize into an object of class that can be assigned.
///
/// The class that will be deserialized to.
/// An XML that will be deserialized.
/// A deserialized object of class from .
public static T Deserialize(string xmlString)
{
Type t = typeof(T);
using MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString));
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(t);
return (T)serializer.Deserialize(memStream);
}
}