Error CS1061 ‘HttpContent’ ne contient pas de définition pour ‘ReadAsAsync’ et aucune méthode d’extension accessible ‘ReadAsAsync’ acceptant un premier argument de type ‘HttpContent’ n’a pu être trouvée (manque-t-il une directive using ou une référence d’assembly ?)
Le projet est une bibliothèque de classes, j’ai mis à jour son csproj en supprimant une référence de package vers Microsoft.AspNetCore.App et en ajoutant une référence de framework à la place :
ReadAsAsync est une extension .NET Standard qui est en fait partagée entre ASP.NET Core et ASP.NET Web Api (via une bibliothèque NuGet). Cependant, elle utilise JSON.NET pour la désérialisation, et depuis .NET Core 3.0, ASP.NET Core utilise System.Text.Json à la place. En conséquence, cette bibliothèque (et l’extension qu’elle contient) n’est pas incluse dans le framework .NET Core 3.0 car cela nécessiterait d’inclure la bibliothèque JSON.NET en plus de System.Text.Json.
Bien que vous puissiez ajouter manuellement Microsoft.AspNet.WebApi.Client (et Newtonsoft.Json avec), vous devriez simplement passer à autre chose. Cela ne vous fait pas gagner grand-chose de toute façon, car vous pouvez accomplir la même chose simplement via :
Si vous le souhaitez, vous pouvez ajouter votre propre extension à `HttpContent` pour encapsuler cela dans une méthode `ReadAsAsync` :
`public static class HttpContentExtensions
{
public static async Task<T> ReadAsAsync<T>(this HttpContent content) =>
await JsonSerializer.DeserializeAsync<T>(await content.ReadAsStreamAsync());
}