0

Я читал этот учебник на этой странице http://channel9.msdn.com/Series/Windows-Phone-8-1-Development-for-Absolute-Beginners/Part-22-Storing-and-Retrieving-Serialized-Data, потому что я хочу, чтобы мое приложение хранило данные в файле JSON, а затем прочитало его. 2 вещи об учебнике:Не удается прочитать файл JSON - FileNotFoundException

Я нажимаю кнопку записи - отлично работает, а затем нажмите кнопку чтения, и он также работает, однако я закрою эмулятор win phone 8.1, снова откройте его, нажмите кнопку чтения, и я получил An exception of type 'System.IO.FileNotFoundException'exception!. что у меня должен быть файл уже на диске из ранее запущенного приложения? Или это стирается, когда я закрываю эмулятор? Также я искал указанный файл на диске и не могу его найти! Любая помощь ?

private const string JSONFILENAME = "data.json"; 

private async Task readJsonAsync() 
{ 

    string content = String.Empty; 

    var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(JSONFILENAME); 
    using (StreamReader reader = new StreamReader(myStream)) 
    { 
     content = await reader.ReadToEndAsync(); 
    } 

    resultTextBlock.Text = content; 
} 


private async Task writeJsonAsync() 
{ // Notice that the write is ALMOST identical ... except for the serializer. 

    var myCars = buildObjectGraph(); 

    var serializer = new DataContractJsonSerializer(typeof(List<Car>)); 
    using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
        JSONFILENAME, 
        CreationCollisionOption.ReplaceExisting)) 
    { 
     serializer.WriteObject(stream, myCars); 
    } 

    resultTextBlock.Text = "Write succeeded"; 
} 
+2

Отформатируйте свой код. –

+0

извините, б/у цитата! – Dodi

ответ

0

При закрытии эмулятора его состояние не сохраняется, а это означает, что приложения, которые вы испытанные не там после перезагрузки эмулятора. Поэтому, когда вы снова откроете эмулятор, VS сделает новую установку.

То же самое происходит, когда вы выполняете перестройку своего проекта. Затем VS удалит приложение из эмулятора и переустановит его с нуля. Это, в свою очередь, также приведет к потере вашего файла JSON.

Если вы хотите, чтобы ваши данные были сохранены, не закрывайте эмулятор и просто используйте Build from from VS (VS решает время от времени восстанавливать ваше приложение).

Чтобы проверить правильность вашего приложения, я предлагаю вам ознакомиться с электроинструментом для Windows Phone (http://wptools.codeplex.com/). Там вы можете явно выбрать установку или обновление данного пакета XAP.

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