4

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

4

2 回答 2

9

我不确定您到底想做什么,但如果您只想检查流中写入的内容,您可以这样做:

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);
    }
}
于 2010-02-15T15:43:57.750 回答
2

确定外部库使用的构造函数并实现它(或者只实现它们),然后你只需要覆盖你的外部库使用的 write 方法。

public class Class1 : StreamWriter 
{
    public Class1(Stream stream)
        : base(stream)
    {

    }
    public Class1(Stream stream, Encoding encoding)
        : base(stream, encoding)
    {

    }
    public Class1(Stream stream, Encoding encoding, int bufferSize)
        : base(stream, encoding, bufferSize)
    {

    }
    public Class1(string path)
        : base(path)
    {

    }
    public Class1(string path, bool append)
        : base(path, append)
    {

    }
    public Class1(string path, bool append, Encoding encoding)
        : base(path, append, encoding)
    {

    }
    public Class1(string path, bool append, Encoding encoding, int bufferSize)
        : base(path, append, encoding, bufferSize)
    {

    }

    public override void Write(string value)
    {
        base.Write(value);
    }
}
于 2010-02-15T15:44:30.247 回答