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); }
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)); }