2013-08-10 5 views
0

Я немного новичок в программировании приложения для магазина Windows. Поэтому вопрос заключается в том, как я могу сохранить экземпляр класса в xml или двоичный файл. Я пробовал какой-то код, но он не работает.экземпляр класса магазина - приложение для хранения Windows

Надеюсь, что кто-то может направить меня в правильном направлении.

+0

Вы имеете в виду сериализованный экземпляр, например, как json или xml string? – Martin

ответ

0

Вы можете сериализовать экземпляр, используя этот код

/// <summary> 
    /// Deserializes the XML. 
    /// </summary> 
    /// <typeparam name="T"></typeparam> 
    /// <param name="xml">The XML.</param> 
    /// <returns>The instance</returns> 
    public static T DeserializeXml<T>(this String xml) 
    { 
     var bytes = Encoding.UTF8.GetBytes(xml); 
     using (var stream = new MemoryStream(bytes)) 
     { 
      var serializer = new DataContractSerializer(typeof(T)); 
      return (T)serializer.ReadObject(stream); 
     } 
    } 

    /// <summary> 
    /// Serializes the specified instance. 
    /// </summary> 
    /// <param name="instance">The instance.</param> 
    /// <returns>Xml</returns> 
    public static String SerializeXml(this Object instance) 
    { 
     using (var stream = new MemoryStream()) 
     { 
      var serializer = new DataContractSerializer(instance.GetType()); 
      serializer.WriteObject(stream, instance); 
      stream.Position = 0; 
      using (var reader = new StreamReader(stream)) 
      { 
       var result = "<?xml version='1.0' encoding='UTF-8' ?>"; 
       result += reader.ReadToEnd(); 
       return result; 
      } 
     } 
    } 

Следующий шаг заключается в сохранении сериализированную текст экземпляра в файл.

var filename = "instance.txt";  
    var file = await ApplicationData.Current.LocalFolder.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists); 
    var content = yourInstance.SerializeXml(); 
    await FileIO.WriteTextAsync(file, content, Windows.Storage.Streams.UnicodeEncoding.Utf8); 

Теперь должен быть файл в вашем AppPackage-Local-папка под названием instance.txt, который содержит текущий экземпляр сериализован в XML.

0

Вы можете использовать Windows.Storage для хранения любых файлов, использование которых подобно операции ввода-вывода. MSDN

IsolatedStorage подобен этому для приложений Windows Phone.

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