c# - 读取 System.Diagnostics.Debug 窗口

标签 c#

我有一个Netduino当前正在向系统输出加速度计数据。诊断.调试窗口。我正在等待邮件中的 USB->232 转换器,以通过串行端口正确地将数据从设备获取到我的应用程序中,但我想知道是否有人知道是否可以从设备读取数据,以进行快速测试调试窗口返回我的应用程序?

编辑 - 解决方案: 我将其发布在这里,供任何需要我的解决方案的人使用。我最初认为 Nuf 的答案有效“写入 System.Diagnostics.Debug 的数据可以使用 TraceListener 类捕获。MSDN 有简短的教程如何设置它。”但我发现监听器只能从它自己的应用程序中获取数据。由于我使用的是 Netduino,调试输出来自不同的程序,这意味着跟踪监听器无法读取它。所以我找到了一种方法可以直接读取Output框中的文本。

基于 MSDN 的代码: 您将需要 3 份对您的项目的引用。它们位于 .Net 引用选项卡中 - EnvDTE、EnvDTE80 和可扩展性。

using EnvDTE80;
using EnvDTE;
using Extensibility;

        public static string ReadDebugBox()
        {
            EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0");
            string data = "";
            OutputWindow ow = dte.ToolWindows.OutputWindow;
            OutputWindowPane owP;

            TextDocument owPTxtDoc;
            EditPoint2 strtPt;

            owP = ow.OutputWindowPanes.Item("Debug");
            owP.Activate();
            owPTxtDoc = owP.TextDocument;

            strtPt = (EditPoint2)owPTxtDoc.StartPoint.CreateEditPoint();
            return strtPt.GetText(owPTxtDoc.EndPoint);
        }



            public static void ClearDebugBox()
            {
                EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0");
                OutputWindow ow = dte.ToolWindows.OutputWindow;
                OutputWindowPane owP;

                TextDocument owPTxtDoc;
                EditPoint2 strtPt;

                owP = ow.OutputWindowPanes.Item("Debug");
                owP.Activate();

                owP.Clear();
            }

可能有更好的方法,但这只是对我有用的方法,所以我想我会分享它。

最佳答案

可以使用 TraceListener 捕获写入 System.Diagnostics.Debug 的数据类(class)。 MSDN有短tutorial如何设置。

关于c# - 读取 System.Diagnostics.Debug 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197804/

相关文章:

c# - 为什么我的 Fluent NHibernate 子类映射会生成冗余列?

c# - DataGridView CheckBox 单元格/列事件

c# - StreamWriter 什么时候被释放?

c# - Restsharp.RestRequest.RemoveJsonBody() 方法

c# - 使用引用的 ItemsSource 绑定(bind)到 SelectedItem

c# - 通过 C# 与 IIS 交互

c# - 在 Visual Studio 2019 中键入时,如何获取第 3 方类的 IntelliSense 提示?

c# - 使用 WiX 创建现有文件夹的桌面快捷方式

c# - C#中如何转换时间

c# - 如何将新行添加到由 IDataReader 填充的表中?