调试时将 Console.Write... 方法重定向到 Visual Studio 的输出窗口

发布于 2024-08-26 12:54:20 字数 122 浏览 3 评论 0原文

Visual Studio 中的控制台应用程序项目,我想将控制台的输出重定向到输出窗口,同时调试。

From a Console Application project in Visual Studio, I want to redirect Console's output to the Output Window while debugging.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

简美 2024-09-02 12:54:21

请注意,如果您使用 dkackman 的方法,但希望将输出写入控制台窗口和调试窗口,那么您可以稍微修改他的代码,如下所示:

class DebugWriter : TextWriter
{
    //save static reference to stdOut
    static TextWriter stdOut = Console.Out;

    public override void WriteLine(string value)
    {
        Debug.WriteLine(value);
        stdOut.WriteLine(value);
        base.WriteLine(value);
    }

    public override void Write(string value)
    {
        Debug.Write(value);
        stdOut.Write(value);
        base.Write(value);
    }

    public override Encoding Encoding
    {
        get { return Encoding.Unicode; }
    }
}

Note if you're using dkackman's method but you want to write the output to BOTH the console window and the debug window, then you can slightly modify his code like this:

class DebugWriter : TextWriter
{
    //save static reference to stdOut
    static TextWriter stdOut = Console.Out;

    public override void WriteLine(string value)
    {
        Debug.WriteLine(value);
        stdOut.WriteLine(value);
        base.WriteLine(value);
    }

    public override void Write(string value)
    {
        Debug.Write(value);
        stdOut.Write(value);
        base.Write(value);
    }

    public override Encoding Encoding
    {
        get { return Encoding.Unicode; }
    }
}
梦途 2024-09-02 12:54:21

尝试 Trace.Write 并使用 DebugView

Try Trace.Write and use DebugView

一梦等七年七年为一梦 2024-09-02 12:54:21

实际上,有一个最简单的方法:在 Visual Studio 的“选项”窗口中(从“工具”菜单),转到“调试”,然后选中“将所有输出窗口文本重定向到立即窗口”选项。

Actually, there is an easiest way: In the "Options" window of Visual Studio (from the Tools menu), go to "Debugging" then check the option "Redirect All Output Window Text to the Immediate Window".

巾帼英雄 2024-09-02 12:54:20

调试前将应用程序类型更改为 Windows。如果没有控制台窗口,Console.WriteLine 的工作方式与 Trace.WriteLine 类似。调试后不要忘记将应用程序重置回控制台类型。

Change application type to Windows before debugging. Without Console window, Console.WriteLine works like Trace.WriteLine. Don't forget to reset application back to Console type after debugging.

段念尘 2024-09-02 12:54:20
    class DebugWriter : TextWriter
    {        
        public override void WriteLine(string value)
        {
            Debug.WriteLine(value);
            base.WriteLine(value);
        }

        public override void Write(string value)
        {
            Debug.Write(value);
            base.Write(value);
        }

        public override Encoding Encoding
        {
            get { return Encoding.Unicode; }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
#if DEBUG         
            if (Debugger.IsAttached)
                Console.SetOut(new DebugWriter());   
#endif

            Console.WriteLine("hi");
        }
    }

** 请注意,这几乎是伪代码的粗略组合。它有效,但需要工作:) **

    class DebugWriter : TextWriter
    {        
        public override void WriteLine(string value)
        {
            Debug.WriteLine(value);
            base.WriteLine(value);
        }

        public override void Write(string value)
        {
            Debug.Write(value);
            base.Write(value);
        }

        public override Encoding Encoding
        {
            get { return Encoding.Unicode; }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
#if DEBUG         
            if (Debugger.IsAttached)
                Console.SetOut(new DebugWriter());   
#endif

            Console.WriteLine("hi");
        }
    }

** note that this is roughed together almost pseudo code. it works but needs work :) **

笑饮青盏花 2024-09-02 12:54:20

您可以将其更改为 System.Diagnostics.Debug.Write();

You can change it to System.Diagnostics.Debug.Write();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文