2011-08-03 21 views
5

Próbuję zapisać dwie listy obiektów w aplikacji ApplicationSettings, ale utknąłem w dziwnym zagadnieniu (ale prawdopodobnie to ja gdzieś popełniłem głupi błąd).ApplicationSettings nie jest poprawnie zapisany

Jeśli zapiszę tylko jedną z list, działa ona zgodnie z założeniem - zostanie zapisana i ponownie załadowana po następnym uruchomieniu aplikacji. Ale jeśli spróbuję zapisać 2 listy, żadna z nich nie wydaje się być poprawnie zapisana. Żadnych błędów ani niczego, tylko "pustka".

Zobacz kod poniżej.

//My save method 
public void Gem() 
     { 
      var settings = IsolatedStorageSettings.ApplicationSettings; 

      if (settings.Contains(INDTASTNINGER_LIST)) 
      { 
       settings[INDTASTNINGER_LIST] = _indtastningsListe; 
      } 
      else 
       settings.Add(INDTASTNINGER_LIST, _indtastningsListe); 

      if (settings.Contains(INDTASTNINGER_LIST2)) 
      { 
       settings[INDTASTNINGER_LIST2] = _indtastningsListe2; 
      } 
      else 
       settings.Add(INDTASTNINGER_LIST2, _indtastningsListe2); 
      settings.Save(); 
     } 

     //Constructor supposed to load settings 
     public Indtastninger() 
     { 
      var settings = IsolatedStorageSettings.ApplicationSettings; 

      if (settings.Contains(INDTASTNINGER_LIST)) 
      { 
       _indtastningsListe = null; 
       _indtastningsListe = (List<Indtastning>)settings[INDTASTNINGER_LIST]; 
      } 
      if (settings.Contains(INDTASTNINGER_LIST2)) 
      { 
       _indtastningsListe2 = null; 
       _indtastningsListe2 = (List<Indtastning>)settings[INDTASTNINGER_LIST2]; 
      } 
     } 

Co robię źle? Jeśli skomentuję część o treści "list2", pierwsza zostanie zapisana/odtworzona idealnie.

+0

A może powinienem dodać, że nie ma znaczenia, którą listę skomentuję. Wciąż sukces z jednym, ale z dwoma, nic nie jest zapisywane/odzyskiwane. –

+0

Jakiej wersji pakietu SDK używasz? Nie mogę tego zaszkodzić na RC. –

+0

Co się stanie, jeśli dodasz 'settings.Save()' pomiędzy dodawaniem. Możliwe, że serializacja drugiej listy jest zerwana i nie wywołuje 'save()' –

Odpowiedz

2

Ten sam problem pojawił się jakiś czas temu, problem polega na tym, że można zapisywać tylko w obiektach IsolatedStorage będących serializacjami XML.

jeśli zapiszesz inny obiekt, będzie działał nawet z debuggerem, ale po ponownym uruchomieniu aplikacji wszystkie zapisane dane zostaną utracone.

Powiązane problemy