首页 > IT职业 > IT职场 > 自定义可视化调试工具
最近飞机失联的太多,明天要飞北京处理服务器双机热备的问题,航空保险已买,单号是:TF10122913。
至于我的银行卡密码,在我枕头下面的字条里,要是我之后没再更新文章,请通知我家人,哈哈哈哈。
好了,Joke 被 Play 后,下面 Enter 正文。
话说:使用CYQ.Data时,会经常断点MDataTable的对象,为了查看表格的数据内容,在监视里会常ToDataTable(),然后借可DataTable的可视化方式查看表格。
近日:心中莫名就来了一句话,不转行不行?狠想直接看MDataTable的对象,Like This:
于是经过一翻小研究,就有了下面的内容。
用文字描述显的太无力,我直接上图,很直观:

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

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放到以下目录:VS安装目录Microsoft Visual Studio XXXCommon7PackagesDebuggerVisualizers
然后就自动生效了,当你调试时,会被加载,进而呈现你的那个效果。
对于不同的VS(2005、2008、2012、2015),你需要编绎不同的版本,主要是引用的:Microsoft.VisualStudio.DebuggerVisualizers 这个版本不一样。
下载地址:CYQ.Visualizer.rar 下载
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2730/viewspace-2806528/ ,如需转载,请注明出处,否则将追究法律责任。