2011-08-03 116 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序列化的IsolatedStorage对象。

如果保存其他对象,即使使用调试器也能工作,但是当应用程序重新启动时,所有保存的数据都会丢失。