为程序的一部分抑制Console.WriteLine

时间:2012-04-23 14:06:44

标签: c# console console.writeline

由于某些我不知道的原因,我正在使用的库的开发人员在库中调用方法时决定Console.WriteLine吨信息,基本上解释了正在发生的每一步。

这很好,但在开发过程中我不需要一直看到这个,所以我的问题是我可以禁止Console.WriteLine在我不希望它被使用时使用吗?我仍然希望能够看到我自己的Console.WriteLine,而不是图书馆内的那些。

不言而喻,我没有图书馆的资源。

此致

AK

1 个答案:

答案 0 :(得分:2)

您可以使用Console.SetOutConsole.Out重定向到您选择的内容(例如丢弃所有输入的内容),然后再调用该库,然后执行相同操作以重新设置原始值。尽管这样做会很尴尬。

为了使事情更易于管理,您可以创建另一个实现IDisposable的类并像这样使用它:

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

StandardOutSink的构造函数(您需要编写)会将输出流重定向到特制的TextWriter(您还需要编写),然后是Dispose方法将它设置回原始流。