5

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

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

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

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

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

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

4

1 回答 1

11

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

于 2014-02-24T12:59:33.597 回答