Можно ли перехватить вывод консоли?

Я называю метод, скажем, FizzBuzz() , над которым я не контролирую. Этот метод выводит кучу вещей в Консоль с помощью Console.WriteLine .

Возможно ли, чтобы я перехватил вывод, создаваемый методом FizzBuzz ? Обратите внимание, что мое приложение – это приложение консоли.

Да, очень возможно:

 var consoleOut = new StringWriter(); Console.SetOut(consoleOut); Console.WriteLine("This is intercepted."); // This is not written to console File.WriteAllText("ConsoleOutput.txt", consoleOut.ToString()); 

Позже, если вы хотите остановить перехват вывода консоли, используйте следующую модификацию:

 var stdOut = Console.Out; // Above interceptor code here.. Console.SetOut(stdOut); // Now all output start going back to console window 

Или OpenStandardOutput делает то же самое без необходимости сначала сохранить стандартный stream:

 // Above interceptor code here.. var standardOutput = new StreamWriter(Console.OpenStandardOutput()); standardOutput.AutoFlush = true; Console.SetOut(standardOutput); // Now all output starts flowing back to console 
  • Вывод зеркального отображения консоли в файл
  • Показать / скрыть окно консоли приложения консоли C #
  • C # - redirect на консоль в реальном времени
  • Неблокирующий вход консоли C ++
  • Перенаправить вывод консоли в текстовое поле в отдельной программе
  • Захват вывода консоли из приложения .NET (C #)
  • Как открыть окно консоли в Visual C ++?
  • Блокирует Console.WriteLine?
  • Как использовать символы Unicode в командной строке Windows?
  • Перенаправить вывод консоли в строку в java
  • Команда закрыть приложение консоли?
  • Interesting Posts

    Разница между процентами и параметрами fr в макете CSS Grid

    Где я могу найти список escape-символов, необходимых для моего возвращаемого типа JSON ajax?

    Как работает Skype без переадресации портов?

    Как найти наименьшую подстроку, которая содержит все символы из данной строки?

    Клавиатура не позволяет мне одновременно нажимать определенные клавиши

    MVC Html.Partial или Html.Action

    Openvpn tls 1.2

    Кассандра – Есть ли способ ограничить число асинхронных запросов?

    Разница скоростей между оператором If-Else и Ternary в C …?

    Подключение через VPN – могут ли они видеть мои сайты в приватном режиме просмотра?

    Получить значения из процесса StandardOutput

    Как хранятся даты в Oracle?

    Как сопоставить дефисы с регулярным выражением?

    Установка свойства ‘source’ в ‘org.eclipse.jst.jee.server: JSFTut’ не нашел подходящего свойства

    Как изменить порядок Wi-Fi-сетей в Windows 8.1, чтобы отдать приоритет одному другому?

    Давайте будем гением компьютера.