抑制程序部分的 Console.WriteLine

本文关键字:Console WriteLine 程序部 | 更新日期: 2023-09-27 18:32:08

出于某种我不知道的原因,我正在使用的库的开发人员决定在库内调用方法时Console.WriteLine大量信息,基本上解释了正在发生的事情的每一步。

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

不用说,我没有图书馆的来源。

问候

AK

抑制程序部分的 Console.WriteLine

您可以使用

Console.SetOut在调用该库之前将Console.Out重定向到您选择的内容(例如丢弃所有输入的内容),然后执行相同的操作以重新设置原始值。不过,一直这样做会很尴尬。

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

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

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