Пример #1
0
        public static T Load <T>(string domain)
            where T : SettingsBase, new()
        {
#if DEBUG
            if (App.IsInDesignTime)
            {
                return(new T());
            }
#endif

            var path = SettingsBase.GetSettingsFilePath(domain);

            if (File.Exists(path))
            {
                try
                {
                    return(JsonConvert.DeserializeObject <T>(File.ReadAllText(path)));
                }
                catch (Exception)
                {
                    // continue
                }
            }

            var settings        = new T();
            var previousVersion = SettingsBase.LoadPreviousVersion(domain);
            if (previousVersion != null)
            {
                settings.Upgrade(previousVersion);
            }

            settings.Save();

            return(settings);
        }
Пример #2
0
        public static void Save(SettingsBase settings)
        {
            var path      = SettingsBase.GetSettingsFilePath(settings.Domain);
            var directory = Path.GetDirectoryName(path);

            Debug.Assert(directory != null, "directory != null");
            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }

            File.WriteAllText(path, JsonConvert.SerializeObject(settings, Formatting.Indented));
        }