私はAPIからデータを取り出す機能を持っています(下記)。それをデシリアライズする行にブレークポイントを設定すると、大きなデータが入力されていることがわかります。続行タスクが完了するのを待たずに
私が続行すると、2番目の機能(下記)に入り、エラーが発生します。エラーの横にはNot yet computed
と表示され、例外がスローされます。
私は小さなリストでそれを行うと、ちょうどいい(私はそれが小さなデータセットであると推測します)。
ContinueWith
(タスクの完了を待っています)を使用している場合、どうすれば可能ですか?
public static async Task<Data> GetAllCardsInSet(string setName)
{
setName = WebUtility.UrlEncode(setName);
var correctUri = Path.Combine(ApiConstants.YugiohGetAllCardsInSet, setName);
Console.WriteLine();
using (var httpClient = new HttpClient())
{
var response =
await httpClient.GetAsync(correctUri);
var result = await response.Content.ReadAsStringAsync();
var cardData = JsonConvert.DeserializeObject<CardSetCards>(result);
for (int i = 0; i < cardData.Data.Cards.Count; i++)
{
cardData.Data.Cards[i] = FormatWords(cardData.Data.Cards[i]);
}
return cardData.Data;
}
}
private void GetYugiohCardsAndNavigate(string name)
{
var cardSetData = YugiohRequester.GetAllCardsInSet(_selectedCardSet.Name).ContinueWith((result) =>
{
//var cards = await YugiohRequester.GetAllCardsInSet(_selectedCardSet.Name);
try
{
this.mainPage.NavigateToYugiohCardListPage(result.Result);
}
catch (Exception e)
{
HelperFunctions.ShowToastNotification("Trading Card App", "Sorry, we could not fetch this set");
}
});
}
? – kat1330
null参照例外が返されます –
'cardData.Data'の代わりに' await Task.FromResult(cardData.Data) 'を返すとどうなるか調べてください。 – kat1330