XMLReader - получить количество прочитанных байтов - PullRequest
0 голосов
/ 23 февраля 2020

Я передаю объект StreamReader в XmlReader. Я хотел бы получить количество байтов, потребляемых читателем, когда он просматривает файл.

Мой код выглядит следующим образом:

FileStream fs = File.OpenRead(file_path);
StreamReader streamReader = new StreamReader(fs);
XmlReader reader = XmlReader.Create(streamReader, settings);

while(reader.Read()) {
}

Я подумал, что реализация моего собственного StreamReader могла бы подойти к этому, поэтому я написал следующий класс, чтобы выяснить, какой метод StreamReader использует для чтение. Удивительно, но ни один из приведенных ниже не вызывается:

public class CustomReader : StreamReader
{
public CustomReader(FileStream fs) : base(fs)
{
    Console.WriteLine("constructor");
}

public override string ReadLine()
{
    System.Console.WriteLine("ReadLine called");
    return base.ReadLine();
}

public override int Read(char[] buffer, int index, int count)
{
    System.Console.WriteLine("Read called");
    return base.Read(buffer, index, count);
}

public override int ReadBlock(char[] buffer, int index, int count)
{
    System.Console.WriteLine("ReadBlock called");
    return base.ReadBlock(buffer, index, count);
}
}

Я думаю, мой код выше не верен.

Мне известно, что байт, потребляемых StreamReader , является знакомым топи c, но это не в контексте XML чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...