有没有办法在我自己的应用程序中使用Visual Studio Watch Window?

时间:2010-02-09 19:06:01

标签: c# watch-window

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您更喜欢在属性网格的观察窗口中使用什么?它是评估自定义表达式的能力,还是只是它的UI?

如果是前者,那么,

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

至于更多自己动手的方法,你可以使用CodeDom将表达式编译成一个看起来像这样的方法:

object Evaluate(RequestObject request)
{
     return   ... your expression goes here ... ;
}

然后加载您自动编译的DLL以动态调用此方法,然后根据需要在属性网格中显示其返回值。