首先,我要说我不知道应该用什么关键字来搜索它。我只想出了这个问题的标题。
我确信大多数使用Visual Studio的人已经熟悉其输出面板,它打印调试信息等。其中的一些消息由“系统调试器”本身输出(我该怎么称呼它?),我们可以通过Console.Write()
,Console.WriteLine()
,Debug.Write()
等来自己写一条消息。
我想知道的是,有没有办法捕获“系统调试器”本身输出的消息到我构建的应用程序?
如果您仍然无法理解我的意思,请看下图:
你可以看到这些消息不是由我手动输出的,而是由“系统调试器”输出的:
我想在我的应用程序中显示它们,比如说,TextBlock
就像这样:
编辑:
正如@ Andy的回答所暗示的......我已经正确地完成了每一步。但是,显然,它可以仅显示手动编写的调试(如Debug.Write()
/ WriteLine()
或Trace.Write()
/ WriteLine()
)的调试输出。所以,他的答案不符合我的问题。
答案 0 :(得分:2)
如果您创建一个派生自TraceListener
的新类,然后将该类的实例添加到Debug.Listeners
集合,则只要在Visual中将某些内容写入调试输出,就应调用该类工作室。
在高级别,我会实现这样的事情:
TraceListener
派生的类中,添加一个事件。无论何时调用任何Write()
方法,都要触发此事件,并将该文本包含在事件的EventArgs
中。TraceListener
的实例。将其添加到Debug.Listeners
集合,然后订阅该活动。TraceListener
活动的处理程序中,将EventArgs
中的文字添加到TextBlock
。答案 1 :(得分:0)
实际上,您正在回答与此Capture debug output in C#
相同的问题因此您可以使用该问题的答案
或替代使用MS DebugView工具,如此处https://wpf.2000things.com/2017/06/29/1212-viewing-wpf-trace-output-outside-of-visual-studio/
所述