У меня есть приложение Chrome для обмена сообщениями, которое читает сообщения JSON из STDIN и записывает данные в STDOUT.
Проблема, с которой я сейчас сталкиваюсь, связана с методом StreamReader.Peek()
.
При отладке на первой итерации он выполняется успешно, но на второй итерации он останавливается на reader.Peek () точка без каких-либо исключений.
Элемент управления просто исчезает без каких-либо исключений.
var length = 0;
var lengthBytes = new byte[4];
stdin.Read(lengthBytes, 0, 4);
length = BitConverter.ToInt32(lengthBytes, 0);
var messageBuffer = new char[length];
using (var reader = new StreamReader(stdin))
{
while (reader.Peek() >= 0)
{
reader.Read(messageBuffer, 0, messageBuffer.Length);
}
}
var message = new string(messageBuffer);
Log.Debug(message);
var jsonMessageObject = JsonConvert.DeserializeObject<JObject>(message);
if (jsonMessageObject == null)
{
return null;
}
Может ли кто-нибудь помочь узнать, что происходит не так, хотя он полностью прочитал все данные?
Почему Peek()
ломается без каких-либо исключений?