Snippet .NET C#: Serialiser-Déserialiser dans un fichier

Voici un petit extrait de code C# qui vous permettra de stocker un objet dans un fichier.
Ou à l’inverse, extraire un objet depuis un fichier.


string fileName = "c:\objectInFile.txt";
if (File.Exists(fileName)) {
DeSerializeObject(fileName)
}
else {
//REQUETE
SerializeObject(RecordList, fileName)
}
///

/// Serializes an object.
///

///
/// /// public void SerializeObject(T serializableObject, string fileName)
{
if (serializableObject == null) { return; }
try
{
XmlDocument xmlDocument = new XmlDocument();
XmlSerializer serializer = new XmlSerializer(serializableObject.GetType());
using (MemoryStream stream = new MemoryStream())
{
serializer.Serialize(stream, serializableObject);
stream.Position = 0;
xmlDocument.Load(stream);
xmlDocument.Save(fileName);
stream.Close();
}
}
catch (Exception ex)
{
//Log exception here
}
}

///

/// Deserializes an xml file into an object list
///

///
/// ///
public T DeSerializeObject(string fileName)
{
if (string.IsNullOrEmpty(fileName)) { return default(T); }

T objectOut = default(T);

try
{
string attributeXml = string.Empty;

XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(fileName);
string xmlString = xmlDocument.OuterXml;

using (StringReader read = new StringReader(xmlString))
{
Type outType = typeof(T);

XmlSerializer serializer = new XmlSerializer(outType);
using (XmlReader reader = new XmlTextReader(read))
{
objectOut = (T)serializer.Deserialize(reader);
reader.Close();
}

read.Close();
}
}
catch (Exception ex)
{
//Log exception here
}

return objectOut;
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.