2016-08-16 69 views
3

我最近为我的mac下载并安装了xamarin studio。然后我开始学习使用xamarin进行c#编程的教程,因为我是一个完整的初学者。在本教程中,他们使用的HttpClient并添加xamarin中没有HttpClient

使用System.Net.Http

自己的项目,以便他们可以使用HttpClient的。我无法做同样只有使用System.Net.NetworkInformation

这是一个PCL项目的

选项。我也试过这给了更多的选择,包括高速缓存,邮件,插座,的WebSockets,安全等

我缺少的东西或做错误的共享库项目。

回答

1

这是PCL的所有 - 它本身只包含最基本的.NET功能。您可以在PCL中编写业务逻辑和应用程序流程,但不能参考大多数与硬件交互的库,因为这取决于平台。

对于这个问题,有两种主要的解决方案:

  • 依赖注入:在PCL定义了一个接口,以及特定于平台的组件提供此接口的实现 - 此实现可以再引用所有可用于平台的库。

  • 诱饵和开关:你创建一个PCL用所需的所有方法,所有抛出NotSupportedException异常,包括独立的库与该具有的这些方法的正确实现每个平台相同的签名。编译器将只包含特定平台的库。我个人认为这是一个小技巧,但这是大多数NuGet软件包直接提供“PCL”功能的方式。

0

我不认为你需要任何额外的软件包来访问HttpClient类。我已经在我所有的项目中使用了将近两年了。 例子:

enter image description here

我的建议:

转到:Edit References => Packages => Check System.Net.Http。它应该在那里。

如果你不能找到它,或者Packages(某种错误的)下的列表是空的,然后从这里手动引用它:/Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api

+0

呜呜......我才意识到它已经在单声道的而。看到https://forums.xamarin.com/discussion/7719/using-httpclient不记得我发现我应该使用Microsoft.Net.Http –