在c#控制台应用程序中,有没有办法通过Console.WriteLine
和Console.Write
将文本写入控制台时收到通知?
每当此事件触发时,应该可以执行诸如在写入文本之前更改文本,将其重定向到文件或更改当前Console.ForegroundColor。
我知道一个简单的方法是永远不要直接调用Console.WriteLine
,而是总是调用我自己的自定义包装器方法。
另一种更好的方法是编写自定义ConsoleTraceListener
,并通过trace.TraceInformation()
输出所有文字。
我已经做到了,它运作得很好。
但是,如果Console.WriteLine调用位于另一个应保持不变的程序集内,则不起作用。
那么有没有办法对Console.WriteLine
次调用作出反应而不修改进行这些调用的代码?
答案 0 :(得分:8)
您可以使用Console.SetOut设置自定义Writer类。在本课程中,您可以创建自己的写入功能。