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

本文关键字:扩展 方法 gt lt HttpClient ReadAsAsync | 更新日期: 2023-09-27 18:29:34

因此,我正在启动一个新的.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;

在我的项目中,在添加了对Microsoft.Net.Http包的引用后,当我尝试编写类似的代码时,我注意到HttpResponseMessage没有ReadAsAsync<T>()方法。在深入研究了我同事的POC解决方案后,看起来ReadAsAsync<T>()实际上是System.Net.Http.Formatting程序集中的一个扩展方法。在这个POC解决方案中,有一个对System.Net.Http.Formating的引用,但是它是从路径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.Formating复制到Lib目录中,但我希望有一个更好的选项,比如我缺少的另一个NuGet包,它可以给我这个程序集。

谢谢!

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

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