【问题标题】:Get an event hook to Console.WriteLine获取 Console.WriteLine 的事件挂钩
【发布时间】:2014-02-24 12:38:04
【问题描述】:

在 c# 控制台应用程序中,有没有办法在通过 Console.WriteLineConsole.Write 将文本写入控制台时获得通知?

每当此事件触发时,应该可以执行一些操作,例如在写入之前更改文本、将其重定向到文件或更改当前的 Console.ForegroundColor。

我知道实现此目的的一个简单方法是永远不要直接调用Console.WriteLine,而是始终调用我自己的自定义包装方法。

另一种更好的方法是编写自定义ConsoleTraceListener,并通过trace.TraceInformation() 输出所有文本。 我已经这样做了,而且效果很好。

但是,如果 Console.WriteLine 调用位于另一个应保持不变的程序集中,则此方法不起作用。

那么有什么方法可以对Console.WriteLine 调用做出反应,而无需修改进行这些调用的代码?

【问题讨论】:

标签: c# windows console console.writeline tracelistener


【解决方案1】:

您可以使用 Console.SetOut 设置自定义 Writer 类。在这个类中你可以制作自己的写函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2011-05-16
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2011-03-01
    • 2015-06-05
    相关资源
    最近更新 更多