15

所以我正在启动一个新的 .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.Formatting 的引用,但是它从 path 中提取了这个文件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 包,它可以给我这个程序集。

谢谢!

4

1 回答 1

34

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

于 2013-08-29T14:09:37.340 回答