背景:

话说:使用CYQ.Data时,会经常断点MDataTable的对象,为了查看表格的数据内容,在监视里会常ToDataTable(),然后借可DataTable的可视化方式查看表格。

近日:心中莫名就来了一句话,不转行不行?狠想直接看MDataTable的对象,Like This:

于是经过一翻小研究,就有了下面的内容。

1:什么是:可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)

用文字描述显的太无力,我直接上图,很直观:

A:对字符串的可视化调试展示:

B:对DataSet、DataTable系列的可视化展示:

如上图,简单一句话总结一下就是:对指定某种类型的可视化插件展示

2:怎么实现:可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)

不说你以为很复杂,一说其实简单的要命,这里对图片System.Draw.Image进行示例,最终效果如下图:

下面跟着我一起来:

步骤一:新建个项目=》类库=》添加一个类。
步骤二:引用:Microsoft.VisualStudio.DebuggerVisualizers 
步骤三:输入以下代码:


using Microsoft.VisualStudio.DebuggerVisualizers;
using System;
using System.Drawing;
using System.Windows.Forms; [assembly: System.Diagnostics.DebuggerVisualizer(
typeof(CYQ.Visualizer.ImageVisualizer),
typeof(VisualizerObjectSource),
Target = typeof(System.Drawing.Image),
Description = "Image Visualizer")]
namespace CYQ.Visualizer
{
    public class ImageVisualizer : DialogDebuggerVisualizer
    {
        override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
        {
            Image image = (Image)objectProvider.GetObject();             Form form = new Form();
            form.Text = string.Format("Width: {0}, Height: {1}", image.Width, image.Height);
            form.ClientSize = new Size(image.Width, image.Height);
            form.FormBorderStyle = FormBorderStyle.FixedToolWindow;             PictureBox pictureBox = new PictureBox();
            pictureBox.Image = image;
            pictureBox.Parent = form;
            pictureBox.Dock = DockStyle.Fill;             windowService.ShowDialog(form);
        }
     }
  }

然后编绎成功后变成一个Xxx.dll,就OK了。

简单的说明一下代码流程:

1:新建一个类,叫XXXX,需要继承自:DialogDebuggerVisualizer
2:重写方法Show(有两个参数)
3:代码里,第一行:objectProvider.GetObject() 返回你要处理的类的实体的拷贝,你进行一下类型转换就可以了。
这里说明一下,要处理的必须是序列化的。
4:最后一行: windowService.ShowDialog(控件);就是展示呈现一个控件了,通常我们用Form来显示。
5:中间那一块,就是我们自定要的呈现了,自己要写的东西也就是这些了,学点Winform知识你就会了。
6:最后一步,指定要被插件反射用的程序集信息: 上面有三个typeof
第一个typeof(就是那个XXXX类) 第二个typeof(按示例不用管,除非你需要自定义自己的序列化) 第三个typeof(你要可视化呈现的类)

3:如何部署:可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)

一句话,把那个Xxx.dll放到以下目录:VS安装目录\Microsoft Visual Studio XXX\Common7\Packages\Debugger\Visualizers

然后就自动生效了,当你调试时,会被加载,进而呈现你的那个效果。

4:源码下载及说明

对于不同的VS(2005、2008、2012、2015),你需要编绎不同的版本,主要是引用的:Microsoft.VisualStudio.DebuggerVisualizers 这个版本不一样。

下载地址:CYQ.Visualizer.rar 下载

自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)vs.net开发工具的更多相关文章

  1. 自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)

    前言: 最近飞机失联的太多,明天要飞北京处理服务器双机热备的问题,航空保险已买,单号是:TF10122913. 至于我的银行卡密码,在我枕头下面的字条里,要是我之后没再更新文章,请通知我家人,哈哈哈哈 ...

  2. Microsoft.VisualStudio.DebuggerVisualizers.dll 文件位置 for VisualStudio 2015

    可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers) "C:\Program Files (x86)\Microsoft Visual St ...

  3. VS2010Datatable查看器查看超时(Microsoft.VisualStudio.DebuggerVisualizers)

    这个问题由来已久,却一直没有找到原因.大家都知道,VisualStudio的DebuggerVisualizers是一个非常方便的插件,可以帮助我们调试时查看Datatable视图,前阵子突然发现在查 ...

  4. 发布:.NET开发人员必备的可视化调试工具(你值的拥有)

    1:如何使用 1:点击下载:.NET可视化调试工具 (更新于2016-12-29 19:11:00) (终于彻底兼容了部分VS环境下无法使用的问题) 2:解压RAR后执行:CYQ.VisualierS ...

  5. (转).NET开发人员必备的可视化调试工具(你值的拥有)

    1:如何使用 1:点击下载:.NET可视化调试工具 (更新于2016-11-05 20:55:00) 2:解压RAR后执行:CYQ.VisualierSetup.exe 成功后关掉提示窗口即可. PS ...

  6. Microsoft.VisualStudio.TestTools.UnitTesting 命名空间

      类 说明 AfterAssemblyCleanupEventArgs 为 AfterAssemblyCleanup 事件提供数据. AfterAssemblyInitializeEventArgs ...

  7. 由于Microsoft\VisualStudio\14.0\Designer\ShadowCache导致的一个异常问题

    本文引用了一个DynamicDataDisplay和DynamicControl两个类库,本来使用的时候都时正常的,愉快的运行着. DynamicDataDisplay:这是一个用于动态数据可视化的W ...

  8. 未找到与约束 ContractName Microsoft.VisualStudio.Text.ITextBufferFactoryService RequiredTypeIdentity Microsoft.VisualStudio.Text.ITextBufferFactoryService

    问题:vs2013在装了 之后,重启,打开VS提示: 未找到与约束 ContractName Microsoft.VisualStudio.Text.ITextBufferFactoryService ...

  9. Visual Studio 2008 Package Load Failure:未能正确加载包“Microsoft.VisualStudio.Xaml”

    在安装好Visual Studio 2008后,启动Visual Studio 2008 发现如下提示: 包加载失败 未能正确加载包“Microsoft.VisualStudio.Xaml”( GUI ...

随机推荐

  1. ASP.NET MVC图片管理(更新)

    Insus.NET在ASP.NET MVC专案中,实现了图片管理,上传,预览,显示,删除等功能,还差一个功能,就是更新图片的功能,那这次来完成它.你可以先参考前2篇<ASP.NET MVC图片管 ...

  2. ASP.NET MVC 学习之路由(URL Routing)

    在ASP.NET MVC中,一个URL请求是由对应的一个Controller中的Action来处理的,由URL Routing来告诉MVC如何定位到正确的Controller和Action. 默认路由 ...

  3. python sqlite中通过字段名获取查询结果

    在连sqlite数据库时,用fetchall()查询结果,是用row[0],row[1]这样的方式来打印每列的结果 但是我想用row[“字段名”]方式查询怎么办? import sqlite3 con ...

  4. Android Volley框架的使用(1)

    在Android开发中,经常要通过HTTP请求访问网络.为了使通过HTTP请求访问网络的过程更加简单,2013年提出了新的HTTP通信框架--Volley.Volley使用起来非常简单,适用于网络访问 ...

  5. 【Java每日一题】20161117

    package Nov2016; public class Ques1117 { public static void main(String[] args) { Sub sub = new Sub( ...

  6. XPath的使用

    最近在mybatis的时候,发现源码中出现了这样的一句代码 private void configurationElement(XNode context) { try { String namesp ...

  7. springmvc restful配置有一个小小的坑坑

    首先web.xml配置 <!-- spring-mvc --> <servlet> <servlet-name>springServlet</servlet- ...

  8. Gym 100917J---dir -C(RMQ--ST)

    题目链接 http://codeforces.com/gym/100917/problem/D problem description Famous Berland coder and IT mana ...

  9. (转)T-SQL查询处理执行顺序(一)

    对于T-SQL编程,用得最广泛的,莫过于查询(Querying).要想写出高质量.高性能的查询语句,必须深入地了解逻辑查询处理. 一.逻辑查询处理的各个阶段 (5)SELECT DISTINCT TO ...

  10. Virtual Box和Linux的网络配置盲记

    近来可能在虚拟机重装了Linux的缘故,在用yum安装软件时出现错误,在提示上连接镜像网站时,都是"linux counldn't resolve host"这样的提示.我估计是l ...