2013-09-29 3 views
0

Итак, я использовал изолированное хранилище для локального сохранения объектов в XML. Это сработало, но теперь Microsoft изменила свое действие. Согласно сайту:Windows.Storage.FileIO - Как сохранить объекты

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

Изолированное хранилище не доступно для приложений Windows Store. Вместо этого используйте классы данных приложений в пространствах имен Windows.Storage , включенных в API Runtime Windows для хранения локальных данных и файлов.

Я делал это так:

 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 в папке local/temp/roaming. Here's запись в блоге об этом.

+0

Я использовал версию этого помощника. Однако, я думаю, Microsoft больше не разрешает это? Я не уверен на 100%. Если они все равно разрешат моему приложению проходить, то в противном случае мне нужен способ выяснить, как использовать Windows.Storage – webdad3

+0

Пройдет процесс сертификации. Если вы сомневаетесь, что вы можете включить источник, а не DLL. Используйте [WACK] (http://msdn.microsoft.com/en-us/windows/apps/jj572486.aspx), чтобы проверить сертификацию приложения. – Xyroid

Смежные вопросы