2011-08-03 9 views
5

전화 ApplicationSettings에 두 개의 목록을 저장하려고하는데 이상한 문제가 있습니다. (하지만 어딘가에 어리석은 실수를 저 지르려고합니다.)ApplicationSettings가 제대로 저장되지 않았습니다.

목록 중 하나만 저장하면 정상적으로 작동합니다. 다음에 앱을 시작할 때 저장하고 다시로드합니다. 그러나 2 개의 목록을 저장하려고하면 아무 것도 제대로 저장되지 않은 것 같습니다. 오류 또는 아무것도, 그냥 "공백".

아래 코드를 참조하십시오.

//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]; 
      } 
     } 

내가 뭘 잘못하고 있니? "list2"항목으로 주석 처리하면 첫 번째 항목이 완벽하게 저장/검색됩니다.

+0

그리고 아마 내가 주석으로 달아 놓은 목록에는 차이가 없다고 덧붙여 야합니다. 하나만 가지고도 성공하지만 둘로는 아무 것도 저장/검색되지 않습니다. –

+0

어떤 SDK 버전을 사용하고 있습니까? 저는 RC에서 이것을 재현 할 수 없습니다. –

+0

추가 사이에'settings.Save()'를 추가하면 어떨까요? 두 번째 목록의 직렬화가 깨져서 'save()'를 호출하지 않을 수 있습니다. –

답변

2

저는 이전에 같은 문제에 직면 해있었습니다. 문제는 XML serializables 인 IsolatedStorage 개체에만 저장할 수 있다는 것입니다.

다른 개체를 저장하면 디버거에서도 작동하지만 앱을 다시 시작하면 저장된 모든 데이터가 손실됩니다.

관련 문제