Я использую Json.Net для использования некоторых доступных для поиска потоков.Предотвращение использования JsonTextReader во время десериализации
// reset the input stream, in case it was previously read
inputStream.Position = 0;
using (var textReader = new StreamReader(inputStream))
{
using (var reader = new JsonTextReader(textReader))
{
deserialized = serializer.Deserialize(reader, expectedType);
}
}
Тем не менее, этот метод «потребляет» поток, то есть первый содержал маркер действует Json удаляется из потока.
Это очень раздражает. И бессмысленная позиция потока предоставляется для подражания потреблению, а «чтение» обычно подразумевает «не изменять».
Конечно, я могу сбросить поток в MemoryStream, чтобы защитить мой драгоценный поток источника, но это огромные накладные расходы, особенно при пробной и ошибке при десериализации.
Если есть способ просто «читать», а не «читать-и-потреблять», спасибо за вашу помощь, я не мог найти документацию об этом (и я надеюсь, что этот пост поможет другим google-решению ^^).
ОП конкретно говорится в вопросе, что он не хотел, чтобы скопировать поток из-за высоких накладных расходов. –