Xamarin中没有HttpClient

3
我最近在我的 Mac 上下载和安装了 Xamarin Studio,然后开始跟踪一份使用 Xamarin 进行 c# 编码的教程,因为我是一个完全的新手。在教程中,他们使用 HttpClient 并添加
``` using System.Net.Http ```
到他们的项目中,以便可以使用 HttpClient。但我无法做到相同的操作,只能选择
``` using System.Net.NetworkInformation ```
这是一个 PCL 项目。我还尝试了共享库项目,其中包括 Cache、Mail、Sockets、Websockets、Security 等更多选项。
我是否遗漏了什么或者做错了什么?
3个回答

3

1
这就是PCL的全部内容 - 它仅包含最基本的.NET功能。您可以在PCL中编写业务逻辑和应用程序流程,但无法引用大多数与硬件交互的库,因为这是平台相关的。
解决此问题有两个主要方法:
- 依赖注入:PCL定义了一个接口,您的特定于平台的程序集提供此接口的实现 - 此实现可以引用平台可用的所有库。 - 诱饵和开关:创建一个PCL,其中包含您需要的所有方法,所有这些方法都会抛出NotSupportedException,并包括每个平台的单独库,这些库具有这些方法的正确实现。编译器将仅包含特定平台的库。我个人认为这是一种技巧,但这是大多数NuGet包直接提供其功能“作为PCL”的方式。

0

我认为您不需要任何额外的包来访问HttpClient类。在我的所有项目中,我已经使用它将近两年了。

enter image description here

我建议:
前往:编辑引用 => 包 => 检查 System.Net.Http。它应该在那里。
如果你找不到它,或者下面的列表为空(某种错误),那么可以从这里手动引用它:/Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api

哦...我刚意识到它已经在Mono上运行了一段时间。请参见https://forums.xamarin.com/discussion/7719/using-httpclient。不记得在哪里找到应该使用Microsoft.Net.Http。 - Thibault D.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接