获取Console.WriteLine的事件挂钩

Hug*_*une 3 c# windows console console.writeline tracelistener

在ac#console应用程序中,有没有办法在文本通过Console.WriteLine和写入控制台时获得通知Console.Write

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

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

另一种更好的方法是编写自定义ConsoleTraceListener,并通过输出所有文本trace.TraceInformation().我已经做到了,它运作得很好.

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

那么有没有办法在Console.WriteLine不修改调用这些调用的代码的情况下对调用做出反应?

小智 8

您可以使用Console.SetOut设置自定义Writer类.在本课程中,您可以创建自己的写入功能.