gpt4 book ai didi

c# - 如何将输出面板中 Visual Studio 的 "system debugger"消息捕获到我构建的 C# WPF 应用程序?

转载 作者:行者123 更新时间:2023-12-04 03:14:55 28 4
gpt4 key购买 nike

首先,让我说一下,我不知道应该使用什么关键字来搜索它。我只是想到了这个问题的标题。

我相信大部分使用过Visual Studio的人都已经很熟悉它打印调试信息等的Output面板了,里面的一些消息是“系统调试器”自己输出的(我应该怎么调用它?),我们可以通过 Console.Write() 给它自己写一条消息, Console.WriteLine() , Debug.Write()

我想知道的是,有什么方法可以捕获“系统调试器”本身输出到我构建的应用程序的消息

如果你还不明白我的意思,请看下图:

你可以看到这条消息不是我手动输出的,是“系统调试器”输出的:

Visual Studio's Output panel

我想在我的应用程序中显示它们,比如说,在 TextBlock 中像这样:

Illustration of what I want to do


编辑:

正如@Andy 的回答所建议的那样...我已正确完成每一步。但是,显然,它只能显示来自手动编写调试的调试输出,如 Debug.Write()/WriteLine()Trace.Write()/WriteLine() .所以,他的回答不能满足我的问题。

最佳答案

如果您创建一个派生自 TraceListener 的新类, 然后将该类的实例添加到 Debug.Listeners集合,只要将某些内容写入 Visual Studio 中的调试输出,就应该调用您的类。

在高层次上,我会像这样实现它:

  • 在派生自 TraceListener 的类中,添加一个事件。每当调用任何 Write() 方法时触发此事件,并将文本包含在事件的 EventArgs 中。
  • 在主窗口中,创建一个 TraceListener 实例。将其添加到 Debug.Listeners 集合,并订阅该事件。
  • TraceListener 事件的处理程序中,将 EventArgs 中的文本添加到 TextBlock

关于c# - 如何将输出面板中 Visual Studio 的 "system debugger"消息捕获到我构建的 C# WPF 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970918/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com