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

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

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

【问题讨论】:

    标签: c# watch-window


    【解决方案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来动态调用这个方法,如果你喜欢的话,再把它的返回值呈现在属性网格中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-27
          • 2016-10-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-04
          • 1970-01-01
          • 2011-08-28
          相关资源
          最近更新 更多