Ответ 1
.ReadAsAsync<T>
- это асинхронный метод, означающий, что он не возвращает весь десериализованный объект, а Task<T>
для обработки продолжения всей асинхронной задачи.
У вас есть два варианта:
1. Асинхронный шаблон.
Используйте ключевое слово async
в методе enclousing (например: public async void A()
) и выполните асинхронный вызов следующим образом:
dynamic responseContent = await response.Content.ReadAsAsync<object>();
string returnedToken = responseContent.Token;
2. API обычной задачи
Или просто используйте API-интерфейс Task:
response.Content.ReadAsAsync<object>().ContinueWith(task => {
// The Task.Result property holds the whole deserialized object
string returnedToken = ((dynamic)task.Result).Token;
});
Это вам!
Update
Прежде чем опубликовать весь скриншот, никто не может знать, что вы вызываете task.Wait
, чтобы ждать результата async. Но я буду поддерживать свой ответ, потому что это может помочь другим посетителям:)
Как я предложил в комментарии к собственному ответу, вы должны попробовать десериализацию до ExpandoObject
. ASP.NET WebAPI использует JSON.NET как базовый сериализатор JSON. То есть, он может обрабатывать десериализацию анонимного JavaScript для объектов expando.