#c# #silverlight #json.net
#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();
Моя проблема в том, что он попытается выполнить синхронную операцию, которая, в свою очередь, просто выдаст UnsupportedException
.
Есть ли асинхронный, StreamReader
с помощью которого я могу передать JsonTextReader
?
Должен ли я использовать другой подход?
Ответ №1:
Я думаю, вам следует. Я не думаю, что вы можете заставить JsonTextReader использовать асинхронный подход, но вы могли бы изменить весь метод, используемый для получения данных, для асинхронного поведения. Кроме того, используйте
using(var io = new StreamReader())
{
io.Read();
}
синтаксис.
Комментарии:
1. Я знаю, что я должен использовать синтаксис ‘using’. Это не имело отношения к вопросу. В любом случае спасибо.