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
外部ライブラリが使用するコンストラクターを決定し、それを実装します(またはそれらすべてを実装します)。次に、外部ライブラリが使用する書き込みメソッドをオーバーライドする必要があります。
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 に答える