il problema è nell'await.
cioè, questo non funziona:
mentre questo funziona (anche se poi nella realtà il json remoto non lo uso):codice:public async Task<IEnumerable<Item>> GetItemsAsync(bool forceRefresh = false) { var mockItems = new List<Item> { new Item { Id = Guid.NewGuid().ToString(), Title = "100", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "second item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Third item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Fourth item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Fifth item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Sixth item", Author="This is an item description." }, }; var client = new HttpClient(); var json = await client.GetStringAsync(Costanti.allBooks); //var mockItems = JsonConvert.DeserializeObject<List<Item>>(json); items = mockItems; return await Task.FromResult(items); }
il problema è che mi da errore se lo levo e provo ad usare i dati remoti:codice:public async Task<IEnumerable<Item>> GetItemsAsync(bool forceRefresh = false) { var mockItems = new List<Item> { new Item { Id = Guid.NewGuid().ToString(), Title = "100", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "second item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Third item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Fourth item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Fifth item", Author="This is an item description." }, new Item { Id = Guid.NewGuid().ToString(), Title = "Sixth item", Author="This is an item description." }, }; var client = new HttpClient(); var json = client.GetStringAsync(Costanti.allBooks); //var mockItems = JsonConvert.DeserializeObject<List<Item>>(json); items = mockItems; return await Task.FromResult(items); }
ottengo questo errore:codice:public async Task<IEnumerable<Item>> GetItemsAsync(bool forceRefresh = false) { var client = new HttpClient(); var json = client.GetStringAsync(Costanti.allBooks); var mockItems = JsonConvert.DeserializeObject<List<Item>>(json); items = mockItems; return await Task.FromResult(items); }
codice:MockDataStore.cs(71,71): Error CS1503: Argument 1: cannot convert from 'System.Threading.Tasks.Task<string>' to 'string' (CS1503)

Rispondi quotando