c# - console readkey true
¿Es posible interceptar la salida de la consola? (1)
Sí, muy posible:
var consoleOut = new StringWriter();
Console.SetOut(consoleOut);
Console.WriteLine("This is intercepted."); // This is not written to console
File.WriteAllText("ConsoleOutput.txt", consoleOut.ToString());
Más adelante, si desea detener la interceptación de la salida de la consola, use la modificación a continuación:
var stdOut = Console.Out;
// Above interceptor code here..
Console.SetOut(stdOut); // Now all output start going back to console window
O OpenStandardOutput hace lo mismo sin la necesidad de guardar la transmisión estándar primero:
// Above interceptor code here..
var standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput); // Now all output starts flowing back to console
Llamo a un método, digamos, FizzBuzz()
, sobre el cual no tengo control. Este método genera un montón de cosas para la consola usando Console.WriteLine
.
¿Es posible para mí interceptar la salida generada por el método FizzBuzz
? Tenga en cuenta que mi aplicación es una aplicación de consola.