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