阅读本文如果对Microsoft.VisualStudio.DebuggerVisualizers的用法不熟悉的,可以参考这篇文章。http://www.cnblogs.com/devil0153/archive/2010/09/01/Visual-Studio-Custom-Debugger.html

一、 背景介绍及JsonView

由于吾所在的项目中对外开放接口,数据接受和传送都是字符串Json格式,在调试接口阶段,会查看传输数据的内容,如果不经过格式化处理,用肉眼看起来比较费劲和不够直观,经常要把它Copy&Paste到一个Json查看器里,这种操作太多了,就会感到麻烦和繁琐。

之前用过那个Linq可视化工具,挺好用的,所以就联想到应该也有这么一个JsonViewer的工具,Google一下,果然找到了JsonViewer,就下载了这个源码,源码结构如下:

其中JsonVisualizer就是我需要的东西,我直接编译,然后把JsonViewer.dll、JsonVisualizer.dll、Newtonsoft.Json.dll三个文件全部复制,到Vs2010的安装目录"Microsoft Visual Studio 10.0\Common7\Packages\Debugger\Visualizers"下。

 二、 调试运行

F5调试

调试状态下,点击那个放大镜旁边的三角向下箭头,可以看到有个JSON选项,点击它,我这里报错了。

************** Exception Text **************
System.InvalidCastException: Unable to cast object of type 'EPocalipse.Json.Visualizer.JsonVisualizer' to type 'Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer'.
   at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.ManagedShim.DelegatedHost.CreateViewer(IntPtr hwnd, HostServicesHelper hsh, SafeProxyWrapper proxy)

再看详细报错信息

----------------------------------------
Microsoft.VisualStudio.DebuggerVisualizers
    Assembly Version: 10.0.0.0
    Win32 Version: 10.0.30319.1
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualStudio.DebuggerVisualizers/10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.DebuggerVisualizers.dll
----------------------------------------
JsonVisualizer
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///D:/Program%20Files/Microsoft%20Visual%20Studio%2010.0/Common7/Packages/Debugger/Visualizers/JsonVisualizer.dll
----------------------------------------
Microsoft.VisualStudio.DebuggerVisualizers
    Assembly Version: 11.0.0.0
    Win32 Version: 11.0.50727.1
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualStudio.DebuggerVisualizers/11.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.DebuggerVisualizers.dll
----------------------------------------

Microsoft.VisualStudio.DebuggerVisualizers加载了两次,因为我电脑上同时安装了VS 2010和VS 2012,看了一下JsonVisualizer项目里Microsoft.VisualStudio.DebuggerVisualizers的引用,确实引用的是VS 2012的,只要删掉重新引用为VS 2010的即可。

然后就能正常运行了。

三、后记

我在想如果要让VS 2012也支持的话,恐怕还要重新引用对应于VS 2012的Microsoft.VisualStudio.DebuggerVisualizers,再把编译后的三个dll文件放到VS 2012对应的目录下。

本文代码下载

让VS 2010在调试字符串时,支持Json数据格式友好显示的更多相关文章

  1. JS中将JSON的字符串解析成JSON数据格式《转》

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  2. JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  3. JavaScript中将JSON的字符串解析成JSON数据格式

    1.一种为使用eval()函数 var jsonObj=eval("("+data+")"); 2.使用Function对象来进行返回解析 var jsonst ...

  4. 在JS中将JSON的字符串解析成JSON数据格式

    使用eval函数来解析 <script> var data="{root: [{name:'1',value:'0'},{name:'6101',value:'北京市'},{na ...

  5. js中把JSON字符串转换成JSON对象最好的方法

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 第一种解析方式:使用eval函数来解析,并且使用j ...

  6. 使用JavaScriptSerializer序列化集合、字典、数组、DataTable为JSON字符串 分类: 前端 数据格式 JSON 2014-10-30 14:08 169人阅读 评论(0) 收藏

    一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...

  7. wpf控件设计时支持(3)

    原文:wpf控件设计时支持(3) wpf设计时调试 编辑模型 装饰器 1.wpf设计时调试 为了更好的了解wpf设计时框架,那么调试则非常重要,通过以下配置可以调试控件的设计时代码 (1)将启动项目配 ...

  8. 使用 dynamic 标记解析JSON字符串 JDynamic :支持Json反序列化为Dynamic对象

    使用 dynamic 标记解析JSON字符串  http://www.cnblogs.com/taotaodetuer/p/4171327.html 1 string jsonStr = " ...

  9. delphi 2010是动画GIF的支持方法

    下面delphi 2010是动画GIF的支持方法:  1.在窗体上放一个Image1控件.注意:这时设置其Picture属性,加载一幅动画GIF是不会动画显示的.  2.在窗体的FormCreate事 ...

随机推荐

  1. WebLogic口令猜解工具【Python脚本】

    WebLogic 默认端口7001 可以通过如下链接访问控制台 http://10.9.1.1:7001/console/login/LoginForm.jsp 写了一个简单的猜解脚本,半成品,做个记 ...

  2. Beta版本测试报告

    爬虫测试: 由于爬虫是整个系统的数据来源,十分的重要,但是由于引用了jar包并且运行复杂,这里主要做功能性测试,通过增加seed,运行爬虫,可以在后台控制台看到日志的不断刷新以及数据库条目的不断增加, ...

  3. Linear Algebra Lecture5 note

    Section 2.7     PA=LU and Section 3.1   Vector Spaces and Subspaces   Transpose(转置) example: 特殊情况,对称 ...

  4. FizzBuzz 问题

    public class FizzBuzz { static int start = 1; static int end = 100; public static void main(String[] ...

  5. [THINKING IN JAVA]复用类

    7 复用类 7.1 组合 即在一个类中使用另一个类作为成员变量,这是复用了现有程序代码的功能,而非形式. 7.2 继承 关键字:extends,这种复用是形式的复用,是一种可扩展和限制的复用: 复用: ...

  6. php.ini修改php上传文件大小限制的方法详解

    打开php.ini,首先找到file_uploads = on ;是否允许通过HTTP上传文件的开关.默认为ON即是开upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就 ...

  7. LeetCode "473. Matchsticks to Square"

    A trickier DFS, with a little bit complex recursion param tweak, and what's more important is prunin ...

  8. js封装、简单实例源码记录

    1.运动封装:doMove ( obj, attr, dir, target, endFn )  加入回调.&&.||用法注释 <script> var oBtn1 = d ...

  9. Stream 同步错误之解决方案 ORA-00001 ORA-26787 ORA-26786

    stream是 oracle 11g  支持的数据同步技术, 虽然该技术已经不是什么新技术, 但目前国内采用该技术开发的软件不多见. stream 同步软件项目参与近一年, 近期软件上线实施, 效果不 ...

  10. UVA 494 Kindergarten Counting Game

    题目大意:输入一个字字符串,输出该字符串中所包含的"word"个数,其中"word"是指连续的字母(大小写均可) 题目思路:其实这是道水题,不过我考虑的时候,太 ...