private Settings DeserializeSettings(string data) { Settings settings; try { var ser = new DataContractSerializer(typeof(Settings)); using (var sr = new StringReader(data)) using (var xr = XmlReader.Create(sr)) settings = (Settings)ser.ReadObject(xr); } catch { settings = new Settings() { Version = -1 }; } return settings; }
private string SerializeSettings(Settings settings) { string data; var ser = new DataContractSerializer(typeof(Settings)); using (var stream = new MemoryStream()) { ser.WriteObject(stream, settings); stream.Position = 0; using (var reader = new StreamReader(stream)) { data = reader.ReadToEnd(); } } return data; }
/// <summary> /// load the settings and all the feed data from isolated storage /// </summary> public void LoadState(bool forceRefresh = false) { IsBusy = true; if (forceRefresh) { settings = GetSettingsFromConfigFile(); InitializeProperties(); } else { var isoData = IsoHelper.LoadIsoString(ISO_STORE_FILE); if (isoData == null || isoData.Length == 0) { settings = GetSettingsFromConfigFile(); InitializeProperties(); } else { var configSettings = GetSettingsFromConfigFile(); var isoSettings = DeserializeSettings(isoData); if (isoSettings.Version < configSettings.Version) { settings = configSettings; InitializeProperties(); } else { settings = isoSettings; InitializeProperties(); } } } IsBusy = false; }