Как я обрабатываю XML, как определить, сколько данных я уже обработал, будь то в байтах или в символах? Если базовый поток был FileStream
, это было бы легко. Как я могу сделать это с базовым NetworkStream
?Как определить, сколько данных было прочитано XmlTextReader?
Очень важны соображения производительности и памяти.
NetworkStream reportStream = GetStream();
using (var bufferStream = new BufferedStream(reportStream))
{
using (var xmlTextReader = new XmlTextReader(bufferStream))
{
while (xmlTextReader.Read())
{
// TODO check how much data have been read already
// bufferStream.Position and bufferStream.Length don't work
// because NetworkStream doesn't support them by design
// process XML data
}
}
}
Оберните поток в другой и посчитайте? –
'Read()': считывает следующий узел из потока. –
Спасибо, @AlexeiLevenkov –