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

前言:

最近飞机失联的太多,明天出差北京处理服务器双机热备的问题,飞机:广州新白云-北京首都T1,6月5日12:55-16:10,海南航空HU7806,我的保险单号是:TF10122913,我的银行卡密码是:XXXXXX,要是我之后没再更新文章,请通知我的家人,谢谢。

好了,后事交待完了,下面进入正文(你也可以点赞为我祝福)。

背景:

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

然后心中莫名就来了一句话,不转行不行?我想直接看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 下载

时间: 2024-10-15 08:47:45

自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)的相关文章

自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)vs.net开发工具

背景: 话说:使用CYQ.Data时,会经常断点MDataTable的对象,为了查看表格的数据内容,在监视里会常ToDataTable(),然后借可DataTable的可视化方式查看表格. 近日:心中莫名就来了一句话,不转行不行?狠想直接看MDataTable的对象,Like This: 于是经过一翻小研究,就有了下面的内容. 1:什么是:可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers) 用文字描述显的太无力,我直接上图,很直观: A:对字符

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

可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers) "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.DebuggerVisualizers.dll" "C:\Program Files (x86)\Microsoft Visual Studio 14

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

这个问题由来已久,却一直没有找到原因.大家都知道,VisualStudio的DebuggerVisualizers是一个非常方便的插件,可以帮助我们调试时查看Datatable视图,前阵子突然发现在查看时报错了,截图 如下: 详细信息里的内容是: 1 有关调用实时(JIT)调试而不是此对话框的详细信息, 2 请参见此消息的结尾. 3 4 ************** 异常文本 ************** 5 System.Exception: 函数计算超时. 6 在 Microsoft.Vis

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

1:如何使用 1:点击下载:.NET可视化调试工具 2:解压RAR后执行:CYQ.VisualierSetup.exe 成功后关掉提示窗口即可. PS:一次运行,支持各个VS版本,终身提高调试的效率,而且没任何副作用. 2:开源及后续升级地址: 开源地址:http://code.taobao.org/svn/cyqopen/trunk/CYQ.Visualizer/ 后续升级获取地址:https://github.com/cyq1162/cyqdata 在文档目录下. 3:功能介绍 1:支持字符

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

1:如何使用 1:点击下载:.NET可视化调试工具 (更新于2016-11-05 20:55:00) 2:解压RAR后执行:CYQ.VisualierSetup.exe 成功后关掉提示窗口即可. PS:一次运行,支持各个VS版本,终身提高调试的效率,而且没任何副作用. 2:开源及后续升级地址: 开源地址:http://code.taobao.org/svn/cyqopen/trunk/CYQ.Visualizer/ 后续升级获取地址:https://github.com/cyq1162/cyqd

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

在安装好Visual Studio 2008后,启动Visual Studio 2008 发现如下提示: 包加载失败 未能正确加载包“Microsoft.VisualStudio.Xaml”( GUID = {E58C2A8B-BCC4-4559-AD59-D62EB6D58A22} ).请与包供应商联系以获得帮助.由于可能会发生环境损坏,建议重新启动应用程序.要禁止将来加载此包吗? 可以使用“devenv /resetskippkgs”重新启用包加载. 按照提示,在visual studio

C# 项目迁移 Microsoft.VisualStudio.Tools.Office.BuildTasks 生成解决方法报错:请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用

1.在Server2003上使用vs2010开发的项目,移到Win8上,同样使用vs2010打开.在生成解决方案的时候有如下报错: 未能从程序集 Microsoft.VisualStudio.Tools.Office.BuildTasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 加载任务“FindRibbons”. 请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用,并且该任务包

未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”

未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage” VS2012启动/加载项目出问题 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage, Microsoft.VisualStudio.Editor.Implementation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03

未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包 - - 博客频道 - CSDN.NET

原文:http://www.cnblogs.com/autumn/p/3452369.html --------------------------- Microsoft Visual Studio --------------------------- 未能正确加载"Microsoft.VisualStudio.Editor.Implementation.EditorPackage"包. 此问题可能是由配置更改或安装另一个扩展导致的.可以通过查看文件"C:\Users\用户