Created
December 5, 2013 18:33
-
-
Save theShiva/7810735 to your computer and use it in GitHub Desktop.
C# Serialize, Deserialize Object To File
Source: http://stackoverflow.com/a/6115782/325521
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// Serializes an object. | |
/// </summary> | |
/// <typeparam name="T"></typeparam> | |
/// <param name="serializableObject"></param> | |
/// <param name="fileName"></param> | |
public void SerializeObject<T>(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 | |
} | |
} | |
/// <summary> | |
/// Deserializes an xml file into an object list | |
/// </summary> | |
/// <typeparam name="T"></typeparam> | |
/// <param name="fileName"></param> | |
/// <returns></returns> | |
public T DeSerializeObject<T>(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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment