我试图在 Visual Studio 2005 的即时窗口中查看具有 300 多个属性的对象的属性。仅显示前 100 个项目,后跟此标题:
< More... (The first 100 of 306 items were displayed.) >
我正在尝试查看其余项目,但无法弄清楚。
我意识到我可以在 Watch 窗口中看到这些,但那不一样。
我试图在 Visual Studio 2005 的即时窗口中查看具有 300 多个属性的对象的属性。仅显示前 100 个项目,后跟此标题:
< More... (The first 100 of 306 items were displayed.) >
我正在尝试查看其余项目,但无法弄清楚。
我意识到我可以在 Watch 窗口中看到这些,但那不一样。
有时在即时窗口中查看列表而不是在监视窗口中查看很有用。您可以使用以下命令轻松查看比前 100 个更多的结果:
yourList.Skip(100).ToArray()
这确实不需要很长时间才能编写并且效果很好 - 对我很有用。
更新:正如下面的评论中所指出的,这个答案实际上是错误的,并且仅适用于集合而不适用于具有大量属性的对象。我把它留在这里,因为很多人似乎发现它很有用。
如果将对象添加到监视窗口,则展开属性以显示所有属性。然后Ctrl+A复制。然后,您可以粘贴到 excel 中以获取有组织的属性及其值的列表。
即时窗口被设计成一个快速查看工具。如果您想查看更多详细信息,则必须在 Watch Window 或 Quick Watch Window 中查看。
另一种选择是编写一个与立即窗口类似的操作的 Visual Studio 插件,但有更多选项。
像这样调试时,我总是创建一个扩展方法来将对象导出到 xml。它对于排除对象数据非常有用。这是我使用的:
public static void SerializeToXML(this object entity)
{
System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(entity.GetType());
System.IO.StreamWriter file = new System.IO.StreamWriter(string.Format(@"{0}\{1}.xml", Directory.GetCurrentDirectory(), entity.GetType().Name));
writer.Serialize(file, entity);
file.Close();
}
它不是 100% 的完全证明,但大多数时候它是完美的。它将在应用程序目录中创建一个以对象名称作为文件名的 xml 文件。在即时窗口中,您只需键入对象名称,然后键入 .SerializeToXML()。
所以: myList.SerializeToXML()