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.

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...