2012-06-06 6 views
0

Как хранить список массивов в изолированном хранилище? Можно также разместить изображение внутри арраиста? СпасибоХранение arraylist в IsolatedStorage

+1

Это не имеет ничего общего с изолированным хранилищем. Речь идет о сериализации в целом. – usr

+0

Так что я могу сохранить свой аррайалист именно так? : O – CodeGuru

+0

как @usr сказал, вам нужно убедиться, что ваш arraylist сериализуем, а затем вы можете его сохранить. – abhinav

ответ

1

Как и в комментариях, все, что вам нужно, это получить некоторый сериализуемый объект, и вы сможете его сохранить в IS. Будьте в курсе, что массивы более чем одного измерения не могут быть сериализованы!

Вот код кусок я использую для IS:

using System.IO; 
using System.IO.IsolatedStorage; 
using System.Xml.Serialization; 

namespace PhoneApp1 
{ 
public class IsolatedStorage 
{ 
    public static void SaveToIs(String fileName, Object saved) 
    { 
     try 
     { 
      using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       if (isf.FileExists(fileName)) 
       { 
        isf.DeleteFile(fileName); 
       } 


       using (IsolatedStorageFileStream fs = isf.CreateFile(fileName)) 
       { 

        XmlSerializer ser = new XmlSerializer(saved.GetType()); 
        ser.Serialize(fs, saved); 
       } 
      } 
     } 
     catch (IsolatedStorageException ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 


    } 

    public static Object loadFromIS(String fileName, Type t) 
    { 
     Object result = null; 
     try 
     { 
      using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       if (isf.FileExists(fileName)) 
       { 

        using (StreamReader sr = new StreamReader(isf.OpenFile(fileName, FileMode.Open))) 
        { 
         XmlSerializer ser = new XmlSerializer(t); 
         result = ser.Deserialize(sr); 
        } 
       } 
      } 
     } 
     catch (IsolatedStorageException ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     catch (InvalidOperationException e) 
     { 
      MessageBox.Show(e.Message); 
     } 
     return result; 
    } 
} 
} 
Смежные вопросы