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 回答