2016-12-29 2 views
0

Я использовал ниже функции, представленные на этом pageПочему экономия XmlSerializer.Serialize файл в тестовой фазе, но не опубликованной версии

public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new() 
{ 
    TextWriter writer = null; 
    try 
    { 
     var serializer = new XmlSerializer(typeof(T)); 
     writer = new StreamWriter(filePath, append); 
     serializer.Serialize(writer, objectToWrite); 
    } 
    finally 
    { 
     if (writer != null) 
      writer.Close(); 
    } 
} 

Я зову его с помощью:

WriteToXmlFile<List<channel>>("channels.txt", channelList); 

Это делается для того, чтобы сохранить список телевизионных каналов в локальном файле, чтобы впоследствии его можно было повторно открыть, чтобы передать его пользователю.

Это работало отлично, когда я тестировал: я удалял любую предыдущую версию на телефоне, делал чистую сборку, а затем выполнял развертывание по телефону, а затем сразу запускал приложение на телефоне.

Затем я загрузил приложение из магазина, и сохранение больше не происходит (у меня нет ошибок, так как я обнаружил все исключения).

Могу ли я узнать, почему список больше не сохраняется с опубликованной версией? У меня отсутствуют какие-либо возможности? Или путь к файлу (на самом деле я не предоставляю его) или метод, который я использую, чтобы сохранить файл не так?

Я мог бы что-то прочитать об изолированном хранилище, должен ли я использовать это?

Мое приложение для Windows Phone 8.x и выше

Файл только для использования приложением

Есть максимум 10 пунктов, чтобы поместить в файл, так что экономия должна быть быстрой (нет тяжелого требования на асинхронном методе экономии)

Спасибо вам

ответ

1

Я использовал IsolatedStorage вместо (есть образцы на этом сайте тоже), и моя проблема ушла.

Я действительно не знаю, где был использован метод, который я использовал, но это был определенно не правильный способ сделать это.