HttpClient和ReadAsAsync <T>()扩展方法

chr*_*.00 15 .net c# dotnet-httpclient

所以我正在启动一个新的.Net 4.0项目,并将使用公共API进行一些工作.我打算使用Microsoft HttpClient类,所以我安装了最新的稳定版Microsoft.Net.Http NuGet包(版本2.2.13).我正在看一些同事放在一起的POC代码,也使用HttpClient的NuGet包,并注意到这样的代码:

HttpClient client = new HttpClient();
HttpResponseMessage response = client.GetAync("/uri").Result;

DomainType result = response.Content.ReadAsAsync<DomainType>().Result;
Run Code Online (Sandbox Code Playgroud)

在我的项目中,在添加对Microsoft.Net.Http包的引用之后,当我尝试编写类似的代码时,我注意到HttpResponseMessage没有ReadAsAsync<T>()方法.在对我的同事的POC解决方案进行一些挖掘后,看起来ReadAsAsync<T>()它实际上是System.Net.Http.Formatting装配中的扩展方法.在这个POC解决方案中,有一个对System.Net.Http.Formatting的引用,但它从路径中提取此文件C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Net.Http.Formatting.dll.

我的问题是,是否有更好的解决方案来访问此扩展方法,而不是从我的本地ASP.Net安装引用此程序集?我担心这会导致我们的CI服务器出现问题,因为它不太可能安装ASP.Net.我想我可以将System.Net.Http.Formatting复制到我的解决方案中的Lib目录,但是我希望有一个更好的选择,比如我错过的另一个NuGet包会给我这个程序集.

谢谢!

The*_*ESJ 34

这是WebAPI客户端库包的一部分.安装Microsoft.AspNet.WebApi.Client nuget包.

  • 这适用于.NET Core吗?我添加了这个nuget包.但它仍然无效.我错过了一些使用声明吗? (2认同)