Я пишу приложение Windows Phone Silverlight. Я хочу сохранить объект в файл JSON. Я написал следующий фрагмент кода.C# - Сохранить объект в файле JSON
string jsonFile = JsonConvert.SerializeObject(usr);
IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream("users.json", FileMode.Create, isoStore);
StreamWriter str = new StreamWriter(isoStream);
str.Write(jsonFile);
Этого достаточно, чтобы создать файл JSON, но он пуст. Я делаю что-то неправильно? Разве это не должно было записывать объект в файл?
Вы [закрыть] (https://msdn.microsoft.com/en-us/library/system.io.streamwriter.close (v = vs.110) .aspx) 'StreamWriter'? Или еще лучше обернуть его в 'using (var str = new StreamWriter (isoStream)) {str.Write (jsonFile); } 'заявление? См. [Как правильно использовать класс StreamWriter?] (Https://stackoverflow.com/questions/11467240/how-to-use-streamwriter-class-properly). – dbc
Нет, я не закрыл его. – tony
Ну вот в чем проблема. Если вы не закрываете 'StreamWriter', часть написанного вами содержимого может не быть сброшена на диск. – dbc