Custom visual debugging tools (Microsoft. VisualStudio. DebuggerVisualizers) and debugger debugging

Source: Internet
Author: User

Custom visual debugging tools (Microsoft. VisualStudio. DebuggerVisualizers) and debugger debugging
Preface:

There are too many lost planes recently. We will be on a business trip to Beijing tomorrow to handle the problem of dual-host hot backup of servers. The planes are: Guangzhou New Baiyun-Beijing Capital T1, June 5-, Hainan Airlines HU7806, my insurance bill number is TF10122913 and my bank card password is XXXXXX. If I haven't updated my post, please inform my family. Thank you.

Now, let's go to the text below (you can also likes and bless me ).

Background:

Recently I suddenly remembered that when CYQ. Data is used, the MDataTable object is often broken. To view the Data content of the table, the total ToDataTable () in monitoring is used, and then visualized.

Then I came up with a sentence in my mind. Can't I do it? I want to directly view the MDataTable object, Like This:

Visual debugging tool (Microsoft. VisualStudio. DebuggerVisualizers)

It is too powerless to describe in words. I am direct and intuitive:

A: visualized debugging of strings:

The visual debugging tool (Microsoft. VisualStudio. DebuggerVisualizers) doesn't mean that you think it is very complicated, but it is actually very simple. Here we will take an example of the Image System. Draw. Image. The final effect is as follows:

Microsoft. VisualStudio. DebuggerVisualizers
Step 3: Enter the following code: 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 );
}
}
} Then compile the program into a Xxx. dll file, and then click OK.

 

A brief description of the Code process: 1: Create a class named XXXX and inherit from: DialogDebuggerVisualizer
2: override method Show (with two parameters)
3: In the code, the first line: objectProvider. GetObject () returns the copy of the object of the class you want to process. You can perform type conversion.
It is explained that the processing must be serialized.
4: The last line: windowService. ShowDialog (control); displays a control. We usually use Form to display it.
5: the middle part is the self-defined presentation, and the content we want to write is the same. You will learn Winform knowledge.
6: In the last step, specify the assembly information to be reflected by the plug-in: There are three typeof
The first typeof (that is, the XXXX class) The second typeof (by example, unless you need to customize your own serialization) The third typeof (the class you want to visualize) 3: how to deploy: Visual debugging tool (Microsoft. visual Studio. debuggerVisualizers)

Put the Xxx. dll in the following directory: VS installation directory \ Microsoft Visual Studio XXX \ Common7 \ Packages \ Debugger \ Visualizers

Then it takes effect automatically. When debugging, it will be loaded to present your effect.

4: source code download and description

For different VS versions (2005, 2008, 2012, and 2015), you need to compile different versions of idea, which are mainly referenced by Microsoft. VisualStudio. DebuggerVisualizers.

: CYQ.Visualizer.rar download

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.