如何使用JSON.NET的JsonTextReader异步读取NetworkStream?

the*_*row 5 c# silverlight json.net

我NetworkStream为Silverlight 实现了自己的端口,它只允许异步调用.
我想读一些我从服务器获得的JSON-RPC消息,所以我想我会使用JSON.NET,JsonTextReader所以我最终得到了以下代码:

reader = new JsonTextReader(new StreamReader(new NetworkStream(new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))));  
// ...
reader.Read();  
Run Code Online (Sandbox Code Playgroud)

我的问题是它将尝试执行同步操作,而后者又会抛出UnsupportedException.
是否有异步StreamReader,我可以JsonTextReader提供?
我应该采取另一种方法吗?

omi*_*nes 2

我想你应该。我认为您不能强制 JsonTextReader 使用异步方法,但您可以修改用于获取数据的整个方法以异步运行。另外,使用

using(var io = new StreamReader())
{ 
    io.Read(); 
} 
Run Code Online (Sandbox Code Playgroud)

句法。