3

私にはわからない何らかの理由で、私が使用しているライブラリの開発者は、ライブラリConsole.WriteLine内でメソッドが呼び出されるたびに、本質的に何が起こっているかのすべてのステップを説明する大量の情報を決定しました。

これは問題ありませんが、開発中に常にこれを見る必要はないので、私の質問は、Console.WriteLine使用したくないときに使用を抑制できますか? 私はまだ自分Console.WriteLineの を表示したいのですが、ライブラリ内のものは表示したくありません。

ライブラリのソースがないことは言うまでもありません。

よろしく、

AK

4

1 に答える 1

2

Console.SetOutそのライブラリを呼び出す前に、選択したもの (たとえば、すべての入力を破棄するもの)にリダイレクトConsole.Outし、同じことを行って元の値を戻すことができます。とはいえ、それをずっと行うのは面倒です。

物事をもう少し管理しやすくするために、次のIDisposableように実装して使用する別のクラスを作成できます。

using(new StandardOutSink()) {
    // call into the third party library
}

(作成する必要がある)のコンストラクStandardOutSinkターは、出力ストリームを特別に細工されたTextWriter(これも作成する必要がある) にリダイレクトし、Disposeメソッドはそれを元のストリームに戻します。

于 2012-04-23T14:10:38.987 に答える