所以我正在启动一个新的.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的引用,但它从路径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包会给我这个程序集。
谢谢!
答案 0 :(得分:33)
这是WebAPI客户端库包的一部分。安装Microsoft.AspNet.WebApi.Client nuget包。