自定義視覺化除錯工具
前言:
最近飛機失聯的太多,明天要飛北京處理伺服器雙機熱備的問題,航空保險已買,單號是:TF10122913。
至於我的銀行卡密碼,在我枕頭下面的字條裡,要是我之後沒再更新文章,請通知我家人,哈哈哈哈。
好了,Joke 被 Play 後,下面 Enter 正文。
背景:
話說:使用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 XXXCommon7PackagesDebuggerVisualizers
然後就自動生效了,當你除錯時,會被載入,進而呈現你的那個效果。
4:原始碼下載及說明
對於不同的VS(2005、2008、2012、2015),你需要編繹不同的版本,主要是引用的:Microsoft.VisualStudio.DebuggerVisualizers 這個版本不一樣。
下載地址:CYQ.Visualizer.rar 下載
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2730/viewspace-2806528/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在VSCode中能夠視覺化除錯資料的外掛 - addyosmaniVSCode視覺化除錯
- LR.Net自定義工作流視覺化配置視覺化
- 資料視覺化工具的意義有哪些視覺化
- 自定義Timeline工具1
- 自定義檢視指令
- 在ASP.NET Core中建立自定義端點視覺化圖ASP.NET視覺化
- QingScan 快速整合自定義工具
- Laravel 自定義檢視元件Laravel元件
- 自定義 ocelot 中介軟體輸出自定義錯誤資訊
- 自定義OAM錯誤頁面
- 資料視覺化初學者指南:定義、示例和工具視覺化
- 視覺化自定義表單開源的突出優勢表現在哪裡?視覺化
- 自定義視訊播放器播放器
- 教你自定義Flutter錯誤頁面Flutter
- redis視覺化工具——AnotherRedisDesktopManagerRedis視覺化
- Zookeeper視覺化工具PrettyZoo視覺化
- Docker視覺化工具PortainerDocker視覺化AI
- 常見視覺化工具視覺化
- 自定義 Command 檢視 Laravel 日誌Laravel
- [系列] Gin框架 - 自定義錯誤處理框架
- springboot自定義 404 500錯誤頁面Spring Boot
- 自定義 serializers.ValidationError 的錯誤返回Error
- 視覺化之資料視覺化最強工具推薦視覺化
- sqlite 視覺化工具SQLite studioSQLite視覺化
- 43_Docker視覺化工具Docker視覺化
- 視覺化bi工具有哪些視覺化
- RedisInsight :Redis 官方視覺化工具Redis視覺化
- Redis官方視覺化工具RedisInsightRedis視覺化
- 視覺化三維地圖怎麼做?視覺化工具中的地圖工具視覺化地圖
- NSToolbar 只保留自定義工具欄選項
- 谷歌開發者工具自定義佈局谷歌
- Microsoft Office 自定義安裝部署工具 | MocreakROS
- 【vue】自定義一個websocket工具函式VueWeb函式
- 自定義命令列計算工具:AYBO for Mac命令列Mac
- 如何在 pyqt 中自定義工具提示 ToolTipQT
- Laravel 自定義錯誤、錯與提示漢化最簡方案Laravel
- INSTRUMENTS除錯工具的使用(三十三) —— 高階任務之建立自定義Instruments(二)...除錯
- 自定義檢視---圓角柱狀圖(一)