using System;
using System.Xml.Serialization;
using System.Collections;
using System.Xml.Schema;
using System.ComponentModel;
using System.IO;
using System.Xml;
using System.Text;
namespace umbraco.BusinessLogic.Utils
{
///
/// A generic class to inherit from or use by itself so that the serialize/deserialize methods are available to it
///
public class SerializableData
{
public static object Deserialize(string strXML, Type objectType)
{
StringReader sr = new StringReader(strXML);
XmlSerializer xSer = new XmlSerializer(objectType);
object objSerialized = xSer.Deserialize(sr);
sr.Close();
return objSerialized;
}
///
/// Generic Serialization method that will serialize object without the default namespaces:
/// http://www.w3.org/2001/XMLSchema
/// http://www.w3.org/2001/XMLSchema-instance
/// This also ensures that the returned XML is always encoded in UTF-8.
///
///
///
///
public static string Serialize(object objDeserialized, Type objectType)
{
//create empty namespaces so as to not render the default:
//xmlns:xsd="http://www.w3.org/2001/XMLSchema"
//xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer xSer = new XmlSerializer(objectType);
EncodedStringWriter sw = new EncodedStringWriter(new StringBuilder(), Encoding.UTF8);
xSer.Serialize(sw, objDeserialized, ns);
string str = sw.ToString();
sw.Close();
return str;
}
}
}