Я передаю объект 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 чтения.