【问题标题】:No HttpClient in xamarinxamarin 中没有 HttpClient
【发布时间】:2016-08-16 06:35:34
【问题描述】:

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

使用 System.Net.Http

到他们的项目,以便他们可以使用 HttpClient。我无法这样做,只能选择

使用 System.Net.NetworkInformation

这是一个 PCL 项目。我还尝试了一个共享库项目,它提供了更多选项,包括缓存、邮件、套接字、Websockets、安全等。

我是否遗漏了什么或做错了什么。

【问题讨论】:

    标签: c# xamarin xamarin-studio


    【解决方案1】:

    您需要添加Microsoft.Net.Http NuGet 包。

    【讨论】:

      【解决方案2】:

      这就是 PCL 的全部意义所在——它本身只包含最基本的 .NET 功能。您可以在 PCL 中编写业务逻辑和应用程序流程,但您不能引用大多数以某种方式与硬件交互的库,因为这取决于平台。

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

      • 依赖注入:PCL 定义了一个接口,而您的平台特定程序集提供了该接口的实现——然后该实现可以引用平台可用的所有库。

      • 诱饵和切换:您使用所有需要的方法创建 PCL,所有方法都抛出 NotSupportedException 并包含具有相同功能的单独库每个平台的签名 都具有这些方法的正确实现。编译器只会包含特定平台的库。我个人认为这有点小技巧,但这就是大多数 NuGet 包提供“作为 PCL”直接可用的功能的方式。

      【讨论】:

        【解决方案3】:

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

        我的建议:

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

        如果您在此处找不到它,或者Packages 下的列表为空(某种错误),请从此处手动引用它:/Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多