using System.Text; namespace AM2RPortHelperLib; /// /// 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(); memStream = null; 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); } }