ReadAsAsync<比;在System.Net.Http.Formatting库的PCL重新打包中

本文关键字:库的 Formatting PCL 新打包 Http Net System ReadAsAsync | 更新日期: 2023-09-27 17:53:59

当尝试调用System.Net.Http.Formatting的Bitrium.Http.Extensions包中的ReadAsAsync<>扩展方法时,出现以下错误:

方法'SerializeToStreamAsync'在类型"System.Net.Http。ObjectContent'来自程序集"Bitrium.Http。扩展,版本=1.0.0.0,文化=中性,PublicKeyToken=43390f7aed073600'没有实现。

我在一个PCL项目中有类似于以下代码的东西,我正在通过一个简单的单元测试测试。我没有实现等待模式,但我不认为它与此相关。

public class RestApi()
{
    public void Get()
    {
        HttpResponseMessage response = new HttpResponseMessage();
        HttpClient client = new HttpClient();
        response = client.GetAsync("http://someUrl.com").Result;
        var modelList = response.Content.ReadAsAsync<List<Model>>().Result; // I get the exception here
     }
}

方法的调用:

var target = new RestApi();
target.Get();

现在我能做点什么吗?我不一定需要Async功能,所以另一个仍然将我的响应转换为我的模型的实现也会很好。

ReadAsAsync<比;在System.Net.Http.Formatting库的PCL重新打包中

不使用Bitrium重新打包,而是尝试重用System.Net.Http中的ReadAsAsync<T>扩展方法。格式方面,我选择了Json。。因此,不需要依赖于重新打包,而只需依赖于包含HttpClient (NuGet <package id="Microsoft.Net.Http" version="2.2.18" targetFramework="portable-net45+sl50+MonoAndroid10+MonoTouch10" />)的库的PCL构建的当前标准实现。

var resultString = response.Content.ReadAsStringAsync().Result;
Contacts = JsonConvert.DeserializeObject<List<T>>(resultString);

我发现这篇文章对新的Json有帮助。净。