.NET 3.5 Serializing and Deserializing (edit)
https://www.nuget.org/packages/Newtonsoft.Json/3.5.8
https://www.codeguru.com/csharp/.net/net_data/serializing-and-deserializing-xml-in-.net.html
public class JsonSerializerClass { public static string Serialize(T obj) { System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType()); System.IO.MemoryStream ms = new System.IO.MemoryStream(); serializer.WriteObject(ms, obj); string retVal = System.Text.Encoding.Default.GetString(ms.ToArray()); ms.Dispose(); return retVal; } public static T Deserialize(string json) { T obj = System.Activator.CreateInstance(); System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.Unicode.GetBytes(json)); System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType()); obj = (T)serializer.ReadObject(ms); ms.Close(); ms.Dispose(); return obj; } } /// /// TODO: MANH - Write string to .txt file in your Desktop folder /// public static class Utils { public static void WriteLog(string msg) { try { //Path log folder string folder = GetDesktopFolder(); //Path log file string path = folder + "\\Test.log"; // This text is added only once to the file. if (!File.Exists(path)) { // Create a file to write to. using (StreamWriter sw = File.CreateText(path)) { sw.WriteLine(msg); } } // This text is always added, making the file longer over time // if it is not deleted. using (StreamWriter sw = File.AppendText(path)) { sw.WriteLine(msg); } } catch (Exception e) { Debug.WriteLine("Exception: " + e.ToString()); } finally { Debug.WriteLine("Executing finally block."); } } public static string GetDesktopFolder() { string strDesktopFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); return strDesktopFolderPath; } }