【问题标题】:Suppress Console.WriteLine for portion of program抑制程序部分的 Console.WriteLine
【发布时间】:2012-04-23 14:06:43
【问题描述】:

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

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

不用说我没有库的源代码。

问候,

AK

【问题讨论】:

  • 您确定它是 Console.WriteLine 而不是一些恰好使用 Console.WriteLine 的可配置日志库吗?如果这是一个商业图书馆,我会问供应商。如果是内部图书馆,我会问团队。如果它是一个开源库,你应该有代码。

标签: c# console console.writeline


【解决方案1】:

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

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

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

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

【讨论】:

  • 不仅是唯一的解决方案,而且是一个非常整洁的解决方案!谢谢。
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多