在Visual Studio中调试时,如何在Watch Window中轻松查看Exception的Data属性的内容?它是奇怪的类型System.Collections.ListDictionaryInternal。
我发现你可以分别看到键和值:
try {
... do something that throws exception with Data
}
catch (Exception ex) {
throw;
}
finally {
}
在观察窗口中:
ex.Data.Keys.Cast<string>()
ex.Data.Values.Cast<string>()
但是你可以把它看作字典吗?
答案 0 :(得分:10)
System.Collections.ListDictionaryInternal
是一个IDictionary,因此您只需在Watch或QuickWatch窗口中评估以下表达式:
new System.Collections.Hashtable(ex.Data)
编辑:我共同创建了commercial extension for Visual Studio called OzCode,这使得这更容易。有了它,您可以简单地将鼠标悬停在Exception变量上,右键单击它,选择Create Custom Expression,然后输入new System.Collections.Hashtable([obj].Data) // Data
。从那一刻开始,无论何时查看异常,您都可以以一种格式良好的方式查看其数据字典,而无需任何手动步骤,如下所示:
答案 1 :(得分:1)
我认为最好的办法是创建一个函数,使用System.Diagnostics.Debug.Write()
将“异常”内容(包括数据元素,如果有的话)输出到“输出”窗口。