我正在启动一个新的 .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包,可以给我这个程序集。
谢谢!
C:\Program Files...
路径在部署到服务器上时不应该很重要。 - Tim S.