2

ローテーションを追加するファイルにトレースメッセージを書き込むカスタム tracelistener を作成しています (たとえば、ファイル名を毎日変更するなど)。
メソッドのオーバーライドでは、基になるFlushを呼び出しますが、アプリケーション構成で設定すると、アプリケーションが終了したときに呼び出されません。 FlushStreamWriterautoflush='false'Flush

アプリケーションの終了時にカスタム トレース リスナーをファイナライズする正しい方法はどれですか?

編集:Dispose(bool disposing)基本TraceListenerクラスはすでに使い捨てパターンを実装しているため、メソッドをオーバーライドしましたが、私が言うことができる限り、メソッドは呼び出されません。明示的なデストラクタを実装すると、デストラクタが呼び出されますが、その時点で、ストリーム参照がまだ有効であると想定するべきではありませんよね?

4

3 に答える 3

0

Closeカスタム tracelistener でメソッドをオーバーライドし、その下にあるものをオーバーライドする必要がFlushありDisposeますStreamWriter

于 2015-04-17T19:35:38.047 に答える
0

TraceListener基になる を閉じる直前に、カスタム クラスの dispose メソッドでこれを行うことをお勧めしますStreamWriter

于 2009-05-18T09:11:53.550 に答える