xamarin 中没有 HttpClient
No HttpClient in xamarin
我最近为 mac 下载并安装了 xamarin studio。然后我开始学习使用 xamarin 进行 c# 编码的教程,因为我是一个完全的初学者。在教程中,他们使用 HttpClient 并添加
使用 System.Net.Http
到他们的项目,以便他们可以使用 HttpClient。我无法做同样的事情,只能选择
使用System.Net.NetworkInformation
这是一个 PCL 项目。我还尝试了一个共享库项目,它提供了更多选项,包括缓存、邮件、套接字、Websockets、安全等。
我是漏了什么还是做错了什么。
您需要添加 Microsoft.Net.Http NuGet 包。
这就是 PCL 的全部内容 - 它本身仅包含最基本的 .NET 功能。您可以在 PCL 中编写业务逻辑和应用程序流程,但您不能引用大多数以某种方式与硬件交互的库,因为这取决于平台。
这个问题主要有两种解决方案:
Dependency Injection:PCL定义了一个接口,你的平台特定的程序集提供了这个接口的实现——这个实现可以然后引用平台可用的所有库。
Bait-and-switch:你用你需要的所有方法创建一个 PCL,所有这些方法都会抛出 NotSupportedException 并包含单独的库 具有相同签名 的每个平台都有这些方法的正确实现。编译器将只包含特定平台的库。我个人认为这是一个小技巧,但这是大多数 NuGet 包提供直接可用功能的方式 "as a PCL".
我认为您不需要任何额外的包来访问 HttpClient
class。我已经在我的所有项目中使用它近两年了。
示例:
我的建议:
转到:Edit References => Packages => Check System.Net.Http
。它应该在那里。
如果您在那里找不到它,或者 Packages
下的列表是空的(某种错误),请从此处手动引用它:/Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api
我最近为 mac 下载并安装了 xamarin studio。然后我开始学习使用 xamarin 进行 c# 编码的教程,因为我是一个完全的初学者。在教程中,他们使用 HttpClient 并添加
使用 System.Net.Http
到他们的项目,以便他们可以使用 HttpClient。我无法做同样的事情,只能选择
使用System.Net.NetworkInformation
这是一个 PCL 项目。我还尝试了一个共享库项目,它提供了更多选项,包括缓存、邮件、套接字、Websockets、安全等。
我是漏了什么还是做错了什么。
您需要添加 Microsoft.Net.Http NuGet 包。
这就是 PCL 的全部内容 - 它本身仅包含最基本的 .NET 功能。您可以在 PCL 中编写业务逻辑和应用程序流程,但您不能引用大多数以某种方式与硬件交互的库,因为这取决于平台。
这个问题主要有两种解决方案:
Dependency Injection:PCL定义了一个接口,你的平台特定的程序集提供了这个接口的实现——这个实现可以然后引用平台可用的所有库。
Bait-and-switch:你用你需要的所有方法创建一个 PCL,所有这些方法都会抛出 NotSupportedException 并包含单独的库 具有相同签名 的每个平台都有这些方法的正确实现。编译器将只包含特定平台的库。我个人认为这是一个小技巧,但这是大多数 NuGet 包提供直接可用功能的方式 "as a PCL".
我认为您不需要任何额外的包来访问 HttpClient
class。我已经在我的所有项目中使用它近两年了。
示例:
我的建议:
转到:Edit References => Packages => Check System.Net.Http
。它应该在那里。
如果您在那里找不到它,或者 Packages
下的列表是空的(某种错误),请从此处手动引用它:/Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api