net - readasasync c#
¿Dónde está HttpContent.ReadAsAsync? (5)
Después de haber golpeado este varias veces y seguido una serie de sugerencias, si no lo encuentra disponible después de instalar NuGet Microsoft.AspNet.WebApi.Client, agregue manualmente una referencia de la carpeta de paquetes en la solución a:
/Microsoft.AspNet.WebApi.Client.5.2.6/lib/net45/System.Net.Http.Formatting.dll
Y no entre en la trampa de agregar referencias antiguas a System.Net.Http.Formatting.dll NuGet
Veo en toneladas de ejemplos en la web usando el nuevo objeto HttpClient
(como parte de la nueva API web) que debería haber un método HttpContent.ReadAsAsync<T>
. Sin embargo, MSDN no menciona este método, ni IntelliSense lo encuentra.
¿A dónde fue, y cómo lo trabajo?
Parece que es un método de extensión (en System.Net.Http.Formatting):
Actualizar:
PM> paquete de instalación Microsoft.AspNet.WebApi.Client
De acuerdo con la página del paquete System.Net.Http.Formatting NuGet, el paquete System.Net.Http.Formatting
ahora es heredado y puede encontrarse en el paquete Microsoft.AspNet.WebApi.Client
disponible en NuGet aquí .
Si ya está utilizando Newtonsoft.Json
y no desea instalar Microsoft.AspNet.WebApi.Client
:
var myInstance = JsonConvert.DeserializeObject<MyClass>(
await response.Content.ReadAsStringAsync());
Simplemente haga clic derecho en su proyecto. Vaya a Gestionar NuGet. Busque paquetes para Microsoft.AspNet.WebApi.Client y tendrá acceso al método de extensión.
Tengo el mismo problema, así que simplemente obtengo una cadena JSON y deserializo a mi clase:
HttpResponseMessage response = await client.GetAsync("Products");
//get data as Json string
string data = await response.Content.ReadAsStringAsync();
//use JavaScriptSerializer from System.Web.Script.Serialization
JavaScriptSerializer JSserializer = new JavaScriptSerializer();
//deserialize to your class
products = JSserializer.Deserialize<List<Product>>(data);