2013-09-29 74 views
0

因此,我使用獨立存儲將我的對象本地保存爲XML。它很有效,但現在微軟已經改變了它的工作方式。根據這個網站:Windows.Storage.FileIO - 如何保存對象

http://msdn.microsoft.com/en-us/library/3ak841sy.aspx

獨立存儲不適用於Windows應用商店的應用程序。請改用Windows Runtime API中包含的Windows.Storage名稱空間 中的應用程序數據類來存儲本地數據和文件。

我在做這樣的:

 var _Option = Windows.Storage.CreationCollisionOption.ReplaceExisting; 

     var _File = await Folder.CreateFileAsync(path, _Option); 
     MemoryStream saveData = new MemoryStream(); 

     XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); 
     ns.Add("", ""); 

     XmlSerializer x = new XmlSerializer(data.GetType()); 
     x.Serialize(saveData, data,ns); 

     if (saveData.Length > 0) 
     { 

      // Get an output stream for the SessionState file and write the state asynchronously 
      using (Stream fileStream = await _File.OpenStreamForWriteAsync()) 
      { 
       saveData.Seek(0, SeekOrigin.Begin); 
       await saveData.CopyToAsync(fileStream); 
       await fileStream.FlushAsync(); 
      } 
      return true; 
     } 

但我不明白如何與新辦法做到這一點。有任何想法嗎?

回答

1

我推薦你使用this helper class,它將XML格式的任何對象存儲在本地/臨時/漫遊文件夾中。 Here's關於該博客文章。

+0

我正在使用該助手的一個版本。但是,我認爲微軟不再允許?我不是100%確定的想法。如果他們仍然允許我的應用程序通過那麼很好,否則我需要一種方法來弄清楚如何使用Windows.Storage – webdad3

+0

它將通過認證過程。如果您懷疑可以包含源而不是DLL。使用[WACK](http://msdn.microsoft.com/en-us/windows/apps/jj572486.aspx)來測試應用程序認證。 – Xyroid