/// <summary> /// Saves settings to the specified file name. /// </summary> /// <param name="fileName">Name of the file.</param> /// <param name="settings">The settings.</param> private static void SaveSettings(string fileName, SerializableSettings settings) { Log.Debug(typeof(SerializableSettings), "Save", "Begin"); try { string filePath = Path.GetDirectoryName(Path.GetFullPath(fileName)); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } if (File.Exists(fileName)) { try { File.Copy(fileName, fileName + ".bak", true); } catch (Exception ex) { Log.Error(typeof(SerializableSettings), "Save", ex, "Copy to .bak failed"); } } Log.Info(typeof(SerializableSettings), "Save", fileName); using (FileStream file = File.Create(fileName)) { XmlSerializer ser = new XmlSerializer(typeof(SerializableSettings), XmlRoot); ser.Serialize(file, settings); file.Flush(); file.Close(); } return; } catch (Exception ex) { Log.Error(typeof(SerializableSettings), "Save", ex); return; } finally { Log.Debug(typeof(SerializableSettings), "Save", "End"); } }
/// <summary> /// Loads settings from the specified file name. /// </summary> /// <param name="fileName">Name of the file.</param> /// <returns> /// The settings. /// </returns> /// <exception cref="InvalidDataException">No data</exception> private static SerializableSettings LoadSettings(string fileName) { Log.Debug(typeof(SerializableSettings), "Load", "Begin"); try { if (File.Exists(fileName)) { Log.Info(typeof(SerializableSettings), "Load", fileName); using (FileStream file = File.OpenRead(fileName)) { XmlSerializer serializer = new XmlSerializer(typeof(SerializableSettings), XmlRoot); SerializableSettings settings = serializer.Deserialize(file) as SerializableSettings; if (settings == null) { throw new InvalidDataException("No data"); } Log.Debug(typeof(SerializableSettings), "Load", "Loaded"); return(settings); } } } catch (Exception ex) { Log.Error(typeof(SerializableSettings), "Load", ex); } finally { Log.Debug(typeof(SerializableSettings), "Load", "End"); } return(new SerializableSettings()); }