public void SaveSettings(string filePath, Type settingsType) { try { IXSerializer serializer = XSerializer.XmlSerializer.Create(settingsType); string settingsXmlContent = serializer.Serialize(this); File.WriteAllText(filePath, settingsXmlContent); logger.Info("Settings saved: " + filePath); } catch (Exception e) { logger.Error(e, "Could not serialize to " + filePath); } }
public static Settings LoadSettingsFromFile(string filePath, Type settingsType) { if (string.IsNullOrEmpty(filePath) || !File.Exists(filePath)) { logger.Warn("Settings file does not exist: " + filePath); return(null); } try { Settings settings = null; IXSerializer serializer = XSerializer.XmlSerializer.Create(settingsType); string settingsXml = File.ReadAllText(filePath); settings = (Settings)serializer.Deserialize(settingsXml); if (settings != null) { var miscElement = XElement.Load(filePath).Element(MiscellaneousConfig); if (miscElement != null) { settings.Miscellaneous = miscElement.Elements().Where(e => !e.HasElements).ToDictionary(e => e.Name.LocalName, e => e.Value); } settings.FilePath = filePath; if (logger.IsDebugEnabled) { logger.Debug("Settings loaded: " + JsonConvert.SerializeObject(settings, Newtonsoft.Json.Formatting.Indented)); } return(settings); } logger.Warn("No settings of Type " + settingsType.Name + " loaded: " + filePath); return(null); } catch (Exception e) { logger.Error(e, "Could not load " + filePath); return(null); } }