Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }