发布时间:2019-11-22编辑:佚名阅读(2360)
步骤一:新建个项目=》类库=》添加一个类。
步骤二:引用: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(你要可视化呈现的类) 。
把那个Xxx.dll放到以下目录:VS安装目录\Microsoft Visual Studio XXX\Common7\Packages\Debugger\Visualizers或文档\Visual Studio 20XX\Visualizers然后就自动生效了,当你调试时,会被加载,进而呈现你的那个效果。对于不同的VS(2005、2008、2012、2015),你需要编绎不同的版本,主要是引用的:Microsoft.VisualStudio.DebuggerVisualizers 这个版本不一样。
0人
0人
0人
0人