【问题标题】:The type 'IAsyncOperationWithProgress<,>' is defined in an assembly that is not referenced.类型“IAsyncOperationWithProgress<,>”在未引用的程序集中定义。
【发布时间】:2018-01-10 13:35:14
【问题描述】:

在我的Xamarin.Forms 项目中,我尝试使用HttpClientWindows.Web.Http。 我必须使用它,因为我需要忽略一些 SSL 错误。 当我创建 HttpClient 对象并尝试调用方法时,我收到以下错误消息:

错误 CS0012 类型 'IAsyncOperationWithProgress' 定义在 未引用的程序集。您必须添加对 程序集'Windows.Foundation.FoundationContract,版本=3.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'。

我已经做了一些研究并尝试了所有我发现但无法解决的问题。 我怎样才能解决这个问题 ?任何帮助将不胜感激。

【问题讨论】:

    标签: c# visual-studio uwp xamarin.forms visual-studio-2017


    【解决方案1】:

    在我的 Xamarin.Forms 项目中,我尝试使用 Windows.Web.Http 的 HttpClient。我必须使用它,因为我需要忽略一些 SSL 错误。当我创建一个 HttpClient 对象并尝试调用一个方法时,我收到此错误消息。

    您使用的 Windows.Web.Http 命名空间是特定于平台的。底层实现依赖于 WindowsRT 平台。因此它不是跨平台的。

    我们建议使用 System.Net.Http HttpClient 模块在 Xamarin.Forms 应用程序中进行 REST API 调用。更多内容可以参考Using HttpClient with Xamarin.Forms

    • 从 Nuget 安装包 Microsoft.Net.Http -> 用于进行 REST API 调用
    • 从 Nuget 安装包 Newtonsoft.Json -> 用于对象的序列化/反序列化。

    用法

    HttpClient client = new HttpClient();
    var res = await client.GetAsync("http://localhost:5000/api/todo/items");
    

    【讨论】:

    • 好的,我很清楚这一点,我也尝试过 System.Net.Http,但在这种情况下,忽略自签名证书错误是个问题。
    • 是的,你最好创建一个新线程来忽略自签名证书错误。
    • 过去 3 天我一直在寻找这个,但仍然找不到任何合适的解决方案。如果您能提供解决方案,我将不胜感激。
    • 请看我的这个帖子stackoverflow.com/questions/45481509/…。谢谢。
    • 是的。我看到了!
    猜你喜欢
    • 2011-08-16
    • 2014-08-15
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2018-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多