[Debug] 自訂視覺化偵錯

在偵錯時期,VisualStudio內建針對string、xml、DataSet提供了視覺化偵錯,例:文字視覺化檢視、XML視覺化檢視..等

image

目前在偵錯時,最常用的是要查看List<T>內,每個item的屬性,由於沒有視覺化偵錯,所以須一個一個打開來檢視,這樣的偵錯,多點幾個就要翻桌了...。

image


實作List<T>視覺化偵錯

根據msdn的說明,可以繼承DialogDebuggerVisualizer來自訂顯示的內容,此類別需要參考組件Microsoft.VisualStudio.DebuggerVisualizers。
參考了國外文章,實作如下:

1.參考組件

image

ps:VS2015 參考14.0的版本

2.實作VisualizerObjectSource
此類別非必要項目,但由於內建實作IVisualizerObjectProvider的取得物件方式,會先將資料序列化,這表示被偵錯的類別都需要冠上SerializableAttribute。這樣太麻煩了,所以我們自行實作序列化。

image

3.建立顯示UI(VisualizerForm.cs),將資料顯示在GridView上

image

4.實作DialogDebuggerVisualizer

image


如何使用

1.建置完成後,將dll複製到C:\Users\[User]\Documents\Visual Studio 2015\Visualizers

image

2.進入偵錯模式,在List<T>會出現放大鏡圖示

image

點選後,資料會以開窗的方式顯示在GridView上

image

完整範例下載

參考連結


https://vsdatawatchers.codeplex.com/

這個網誌中的熱門文章

[.NET Core] 將專案發行至IIS

[TFS] 分支與合併