1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | namespace KerbalEngineer.Helpers { using System; using System.IO; using System.Text; using System.Xml.Serialization; public static class XmlHelper { /// <summary> /// Loads an object from disk. /// </summary> public static T LoadObject<T>(string path) { T obj = default(T); if (File.Exists(path)) { try { using (StreamReader stream = new StreamReader(path, Encoding.UTF8)) { obj = (T)new XmlSerializer(typeof(T)).Deserialize(stream); } } catch (Exception ex) { Logger.Exception(ex); } } return obj; } /// <summary> /// Loads and object from disk. /// </summary> public static bool LoadObject<T>(string path, out T obj) { obj = LoadObject<T>(path); return (obj != null); } /// <summary> /// Saves an object to disk. /// </summary> public static void SaveObject<T>(string path, T obj) { if (obj == null || string.IsNullOrEmpty(path)) { return; } try { using (StreamWriter stream = new StreamWriter(path, false, Encoding.UTF8)) { new XmlSerializer(typeof(T)).Serialize(stream, obj); } } catch (Exception ex) { Logger.Exception(ex); } } } } |