微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – ReadAsAsync和JsonConvert之间的区别

这适用于所有属性
string resultAsstring = await httpResponseMessage.Content.ReadAsstringAsync();
return await Task.Factory.StartNew(() => JsonConvert.DeserializeObject<ApiData>(resultAsstring));

而这只适用于其中一些:

return await httpResponseMessage.Content.ReadAsAsync<ApiData>();

有什么不同?

解决方法

前者从流中异步读取,然后使用线程池线程将JSON字符串反序列化到对象.

后者从流中异步读取,但是在等待从流的异步读取之后恢复的线程上同步地将JSON字符串转换为对象.

在内部,这两种方法都将利用Json.NET来解析数据,扩展方法是HttpContentExtensions.ReadAsAsync< T>将内部调用使用Json.NET的JsonMediaTypeFormatter.

就个人而言,我会使用后者,因为我看到在后台线程上执行序列化没有任何好处.但是,测试你的代码,看看是否适用于你.

原文地址:https://www.jb51.cc/csharp/95242.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐