public void Save(PreferencesV2 preferences) { var isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); IsolatedStorageFileStream configStream; if (!isoStore.DirectoryExists(this.preferencesPath)) isoStore.CreateDirectory(this.preferencesPath); var fullPath = this.preferencesPath + "/" + PreferencesFileName; if (!isoStore.FileExists(fullPath)) configStream = isoStore.CreateFile(fullPath); else configStream = isoStore.OpenFile(fullPath, FileMode.Open); var formatter = new BinaryFormatter(); formatter.Serialize(configStream, preferences); configStream.Flush(); configStream.Close(); }
public PreferencesV2 Load() { var preferences = new PreferencesV2(); try { var fullPath = this.preferencesPath + "/" + PreferencesFileName; IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null); if (isoStore.DirectoryExists(this.preferencesPath) && isoStore.FileExists(fullPath)) { using (IsolatedStorageFileStream configStream = isoStore.OpenFile(fullPath, FileMode.Open)) { var formatter = new BinaryFormatter(); object tmp = formatter.Deserialize(configStream); // as PreferencesV2; PreferencesV2 v2prefs = tmp as PreferencesV2; if (null != v2prefs) { preferences = v2prefs; } else { Preferences v1prefs = tmp as Preferences; if (null != v1prefs) { preferences = convertPreferences(v1prefs); } } } } } catch (Exception) { // If preferences fail to load, swallow the exception. } return preferences; }