C# 콘솔 응용 프로그램에서는 Console.WriteLine
및 Console.Write
을 통해 텍스트를 콘솔에 쓸 때마다 알림을받을 수 있습니까?Console.WriteLine에 이벤트 후크 가져 오기
이 이벤트가 발생하면 작성하기 전에 텍스트를 변경하거나 파일로 리디렉션하거나 현재 Console.ForegroundColor를 변경하는 등의 작업을 수행 할 수 있어야합니다.
이 작업을 수행하는 간단한 방법은 Console.WriteLine
을 직접 호출하지 말고 항상 내 자신의 사용자 지정 래퍼 메서드를 호출하는 것입니다.
더 좋은 또 다른 방법은 사용자 정의 ConsoleTraceListener
을 작성하고 trace.TraceInformation()
을 통해 모든 텍스트를 출력하는 것입니다. 나는 그것을했고 그것은 잘 작동합니다.
그러나 Console.WriteLine 호출이 변경되지 않고 유지되어야하는 다른 어셈블리 안에있는 경우에는 작동하지 않습니다.
Console.WriteLine
에 전화를 걸 수있는 코드를 수정하지 않고도 대응할 수있는 방법이 있습니까?
콘솔 표준 출력을 자신의 스트림으로 재전송 해 보셨습니까? –
원숭이 패치 Console.WriteLine을 시도해보십시오. https://stackoverflow.com/questions/9684804/is-there-a-way-to-override-a-method-with-reflection 나는 나 자신을 한번도 시도한 적이 없다. – MatthewMartin