|
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace CBR.Core.Helpers
{
/// <summary>
/// Serialize/Deserialize object to XML file or stream. Internal, use SerializeHelper
/// </summary>
public class XmlHelper
{
/// <summary>
/// Serialize an object to a given file
/// </summary>
/// <param name="filePath"></param>
/// <param name="objToSerialize"></param>
/// <returns></returns>
static public bool Serialize(string filePath, object objToSerialize)
{
StreamWriter writer = null;
XmlSerializer xmls = null;
try
{
writer = new StreamWriter(filePath);
xmls = new XmlSerializer(objToSerialize.GetType());
xmls.Serialize(writer, objToSerialize);
}
catch (Exception err)
{
ExceptionHelper.Manage("XmlHelper:Serialize", err);
return false;
}
finally
{
xmls = null;
writer.Close();
}
return true;
}
/// <summary>
/// Deserialize an object from a given file
/// </summary>
/// <param name="filePath"></param>
/// <param name="objType"></param>
/// <returns></returns>
static public object Deserialize(string filePath, Type objType)
{
object objToDeserialize = null;
XmlTextReader xmlReader = null;
XmlSerializer xmls = null;
try
{
xmlReader = new XmlTextReader(filePath);
xmls = new XmlSerializer(objType);
objToDeserialize = xmls.Deserialize(xmlReader);
}
catch (Exception err)
{
ExceptionHelper.Manage("XmlHelper:Deserialize", err);
return null;
}
finally
{
xmls = null;
xmlReader.Close();
}
return objToDeserialize;
}
/// <summary>
/// Serialize an object to a given stream
/// </summary>
/// <param name="stream"></param>
/// <param name="objToSerialize"></param>
/// <returns></returns>
static public bool Serialize(Stream stream, object objToSerialize)
{
StreamWriter writer = null;
XmlSerializer xmls = null;
try
{
writer = new StreamWriter(stream);
xmls = new XmlSerializer(objToSerialize.GetType());
xmls.Serialize(writer, objToSerialize);
}
catch (Exception err)
{
ExceptionHelper.Manage("XmlHelper:Serialize", err);
return false;
}
finally
{
xmls = null;
writer.Close();
}
return true;
}
/// <summary>
/// Deserialize an object from a given stream
/// </summary>
/// <param name="stream"></param>
/// <param name="objType"></param>
/// <returns></returns>
static public object Deserialize(Stream stream, Type objType)
{
object objToDeserialize = null;
XmlTextReader xmlReader = null;
XmlSerializer xmls = null;
try
{
xmlReader = new XmlTextReader(stream);
xmls = new XmlSerializer(objType);
objToDeserialize = xmls.Deserialize(xmlReader);
}
catch (Exception err)
{
ExceptionHelper.Manage("XmlHelper:Deserialize", err);
return null;
}
finally
{
xmls = null;
xmlReader.Close();
}
return objToDeserialize;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
WPF and MVVM fan, I practice C # in all its forms from the beginning of the NET Framework without mentioning C ++ / MFC and other software packages such as databases, ASP, WCF, Web & Windows services, Application, and now Core and UWP.
In my wasted hours, I am guilty of having fathered C.B.R. and its cousins C.B.R. for WinRT and UWP on the Windows store.
But apart from that, I am a great handyman ... the house, a rocket stove to heat the jacuzzi and the last one: a wood oven for pizza, bread, and everything that goes inside
https://guillaumewaser.wordpress.com/
https://fouretcompagnie.wordpress.com/