У меня есть два метода для написания и чтения из файла.как правильно читать из изолированного файла при разработке Windows-телефона
public static async Task WriteDataToFileAsync(string fileName, string content)
{
byte[] data = Encoding.Unicode.GetBytes(content);
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
using (var s = await file.OpenStreamForWriteAsync())
{
await s.WriteAsync(data, 0, data.Length);
}
}
public async static Task<string> ReadFileContentsAsync()
{
var folder = ApplicationData.Current.LocalFolder;
try
{
var file = await folder.OpenStreamForReadAsync("MenuData.json");
using (var streamReader = new StreamReader(file))
{
Debug.WriteLine(streamReader.ReadToEnd());
return streamReader.ReadToEnd();
}
}
catch (Exception)
{
return string.Empty;
}
}
, которые затем используются в этих двух методов
public static async void ApiToFileRestaurants()
{
HttpClient client = new HttpClient();
HttpResponseMessage response = client.GetAsync("http://bonar.si/api/restaurants").Result;
response.EnsureSuccessStatusCode();
string responseBody = response.Content.ReadAsStringAsync().Result;
await Restaurant.WriteDataToFileAsync("MenuData.json", responseBody);
}
public async static Task<List<Restaurant>> FileToRestaurantList()
{
var responseBody = await Restaurant.ReadFileContentsAsync();
List<Restaurant> parsedRestaurants = (List<Restaurant>)Newtonsoft.Json.JsonConvert.DeserializeObject(responseBody, typeof(List<Restaurant>));
return parsedRestaurants;
}
Теперь моя проблема в том, что ReadFileAsync
не возвращает результаты, которые я знаю, сохраняются в файле MenuData.json
, но вместо этого возвращает пустую строку.
В основном я получал исходный код от msdn documentation.
Расположение файла в электроинструментах wp выглядит как that. Я начинающий программист, поэтому я мог бы забыть что-то еще
Вы уверены, что вызов api завершил запись до того, как выполняется вызов чтения? – Paul
@Paul да им вполне уверен, что после того, как я проверил несколько тестов – buco
Вы видите состояние, в котором содержимое находится в вашем окне отладки, но не в вашем приложении? – Paul