C# 抑制部分程序的Console.WriteLine

C# 抑制部分程序的Console.WriteLine,c#,console,console.writeline,C#,Console,Console.writeline,出于某种我不知道的原因,我正在使用的库的开发人员决定在库中调用方法时Console.WriteLine大量信息,基本上解释了正在进行的每一步 这很好,但在开发过程中,我不需要一直看到这一点,所以我的问题是,当我不想使用时,我是否可以禁止使用Console.WriteLine?我仍然希望能够看到我自己的控制台.WriteLines,但不能看到库中的那些 不用说,我没有图书馆的资料来源 问候, AK在调用该库之前,您可以使用它将Console.Out重定向到您选择的某个位置(例如,丢弃所有输入的某个

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

这很好,但在开发过程中,我不需要一直看到这一点,所以我的问题是,当我不想使用时,我是否可以禁止使用
Console.WriteLine
?我仍然希望能够看到我自己的
控制台.WriteLine
s,但不能看到库中的那些

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

问候,

AK

在调用该库之前,您可以使用它将Console.Out重定向到您选择的某个位置(例如,丢弃所有输入的某个位置),然后执行相同的操作以设置回原始值。但是一直这样做会很尴尬

为了使事情更易于管理,您可以创建另一个实现
IDisposable
的类,并按如下方式使用它:

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

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

您确定它是Console.WriteLine,而不是某个碰巧使用Console.WriteLine的可配置日志库吗?如果这是一个商业图书馆,我会问供应商。如果是内部库,我会询问团队。如果它是一个开源库,你应该有代码。不仅是唯一的解决方案,而且是一个非常整洁的解决方案!非常感谢。