Простое решение, которое работает для меня, для работы с консольной способностью (ReadKey, String with Format и arg и т. Д.), А также для просмотра и сохранения вывода:
Я пишу TextWriter, который пишет в Console
и Trace
и заменяю Console.Out
на него.
если вы используете Dialog -> Debugging -> отметьте «Перенаправить весь текст выходного окна в немедленное окно», вы получите его в Immediate Window и довольно чисто.
мой код:
в начале моего кода:
Console.SetOut(new TextHelper());
и класс:
public class TextHelper : TextWriter
{
TextWriter console;
public TextHelper() {
console = Console.Out;
}
public override Encoding Encoding { get { return this.console.Encoding; } }
public override void WriteLine(string format, params object[] arg)
{
string s = string.Format(format, arg);
WriteLine(s);
}
public override void Write(object value)
{
console.Write(value);
System.Diagnostics.Trace.Write(value);
}
public override void WriteLine(object value)
{
Write(value);
Write("\n");
}
public override void WriteLine(string value)
{
console.WriteLine(value);
System.Diagnostics.Trace.WriteLine(value);
}
}
Примечание: я переопределяю только то, что мне было нужно, поэтому, если вы пишете другие типы, вы должны переопределить больше