有没有办法在我自己的应用程序中使用 Visual Studio 的监视窗口?

Posted

技术标签:

【中文标题】有没有办法在我自己的应用程序中使用 Visual Studio 的监视窗口?【英文标题】:Is there a way to use Visual Studio's Watch Window in my own App? 【发布时间】:2010-02-09 19:06:00 【问题描述】:

我有一个基本的消息传递应用程序,它接收来自客户端的请求并返回响应对象。当我遇到格式错误的请求对象时,我将其序列化到数据库日志中,以查找二进制字段中的失败请求。我希望能够反序列化这些格式错误的请求对象并在事后检查它们。

有没有办法在我自己的应用程序中使用 Visual Studio Watch 窗口(或类似窗口)?我知道属性网格,这就是我现在正在使用的,但是使用监视窗口来检查对象会很酷,因为大多数开发人员都熟悉监视窗口。

【问题讨论】:

【参考方案1】:

使用 Visual Studio 本身怎么样?您已经知道如何序列化(所以我假设反序列化)对象。为什么不编写一个应用程序对其进行反序列化,然后将 VS 调试器连接到该应用程序?

【讨论】:

【参考方案2】:

我会使用PropertyGrid 控件。它可用于一次检查单个对象。

【讨论】:

【参考方案3】:

相比属性网格,您更喜欢 Watch Window 中的什么?是评估自定义表达式的能力,还是只是 UI?

如果是前者,那么,

我不知道有什么开箱即用的东西可以让你这样做,最接近的东西(不附加调试器)是Crack.NET(见this图片),理论上你可以合并它将脚本窗口添加到您自己的项目中(毕竟它是开源的),但是您必须用 Python 而不是 C# 来编写表达式。

至于更自己动手的方法,您可以使用 CodeDom 将您的表达式编译成如下所示的方法:

object Evaluate(RequestObject request)

     return   ... your expression goes here ... ;

然后加载你自动编译的DLL来动态调用这个方法,如果你喜欢的话,再把它的返回值呈现在属性网格中。

【讨论】:

以上是关于有没有办法在我自己的应用程序中使用 Visual Studio 的监视窗口?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法打破Visual Studio中执行的下一行代码?

有没有办法更改 Visual Studio Code 的扩展文件夹位置?

有没有办法使用键盘快捷键缩放 Visual Studio 文本编辑器?

有没有办法让 Visual Studio Code 识别 PHP 文件中的 HTML 语法

有没有办法使用键盘快捷键缩放Visual Studio文本编辑器?

Visual Studio 2013 - 如何在我自己的库中链接/包含其他库