所以我正在启动一个新的 .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 包,它可以给我这个程序集。
谢谢!