尽可能小地继承StreamWriter

wei*_*mat 4 c# mocking streamwriter

我正在使用一个允许使用StreamWriter进行日志记录的外部库 - 现在我想根据日志记录的内容添加一些处理.由于我想避免遍历日志文件,我想编写一个继承自StreamWriter的类.
使用少量方法/构造函数的重新实现从StreamWriter继承的最佳方法是什么?

Jef*_*Cyr 8

我不确定你想要做什么,但如果你只想检查流中写的是什么,你可以这样做:

public class CustomStreamWriter : StreamWriter
{
    public CustomStreamWriter(Stream stream)
        : base(stream)
    {}

    public override void Write(string value)
    {
        //Inspect the value and do something

        base.Write(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 只是希望您只需要重写 Write(char) ,因为对 Write 的所有其他调用都会在那里结束,这比重写每个写入方法更省力。如果您在其他方法上调用 base.Write() ,您最终可能会多次写入相同的数据(例如:调用 write(string) 的基调用 write(char) ) (2认同)