65.9K
CodeProject 正在变化。 阅读更多。
Home

VS.NET 通用列表和字典调试器可视化工具

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (35投票s)

2008年4月15日

CPOL

2分钟阅读

viewsIcon

167872

downloadIcon

3844

一个适用于 VS.NET 2005、2008 和 2010 的酷炫列表和字典调试器可视化工具

ListVisualizer2008

引言

这是一个简单的用于 Visual Studio .NET 2005、2008 和 2010 的 List<T>Dictionary<T,T> 调试器可视化工具。它工作的唯一要求是列表或字典中的类必须标记为 [Serializable]

背景

我使用了这篇不错的文章 用 10 行代码创建一个调试器可视化工具 作为起点。我推荐这篇文章,以获取有关如何实现自定义调试器可视化工具的更多详细信息。

Using the Code

要仅安装可视化工具,请根据您要使用的 Visual Studio .NET 版本下载 List Visualizer 2005、2008 或 2010。在 Visual Studio 命令提示符窗口中运行 *install_vs2005.cmd*、*install_vs2008.cmd* 或 *install_vs2010.cmd*。对于 Windows Vista,请确保以管理员身份运行命令提示符。

请注意,*cmd* 文件中的 Visual Studio 路径使用默认安装路径,*c:\Program Files\Microsoft Visual Studio 8*(对于 VS.NET 2005),*c:\Program Files\Microsoft Visual Studio 9.0*(对于 VS.NET 2008)和 *c:\Program Files\Microsoft Visual Studio 10.0*(对于 VS.NET 2010)。如果您将其安装在其他位置,则可能需要更改 *bat* 文件和项目中的后期生成事件。

2005 年的可视化工具的默认路径为 *C:\Program Files\Microsoft Visual Studio 8\Common7\Packages\Debugger\Visualizers*,2008 年为 *c:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\Visualizers*,2010 年为 *c:\Program Files\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\Visualizers*。只需将程序集复制到那里进行手动安装。

源代码包含 VS.NET 2005 (*ListVisualizer.sln*) 和 VS.NET 2008 解决方案 (*ListVisualizer2008.sln*)。后期生成事件自动部署可视化工具以进行测试。请注意,*ListVisualizer2008.sln* 还包含 VS.NET 2005 项目,如果未安装 2005,则可以删除这些项目。

VS.NET 2010 的源代码可以在另一个 zip 文件中找到。

关注点

我必须将泛型类型强制转换为非泛型接口才能使用正在调试的变量

// Get the list
IList list = (IList)objectProvider.GetObject();
 
// Get the dictionary
IDictionary dict = (IDictionary)objectProvider.GetObject();

之后,我使用反射来检索要在网格视图中显示的对象属性和字段

// Retrieve the properties
PropertyInfo[] properties = singleObj.GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
    dgvList.Columns.Add(property.Name, property.Name);
    columns.Add(property.Name, "P");
}
// Retrieve the fields
FieldInfo[] fields = singleObj.GetType().GetFields();
foreach (FieldInfo field in fields)
{
    dgvList.Columns.Add(field.Name, field.Name);
    columns.Add(field.Name, "F");
}

该解决方案包含六个项目 - 2005 年和 2008 年的字典可视化工具、2005 年和 2008 年的列表可视化工具、测试项目 ListVisualizerTest 和执行大部分工作的类库 VisualizerLibListVisualizerTest 用于调试不同类型的列表和字典,也用于创建可视化工具的 UI。

历史

  • 2008 年 4 月 15 日:初始发布
  • 2010 年 7 月 3 日:文章已更新 - 为 Visual Studio 2010 创建了新的可视化工具
  • 2011 年 8 月 26 日:文章已更新 - 所有 Visual Studio 版本的可视化工具现在都可以调整大小
© . All rights reserved.