true c# .net .net-3.5 console

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.