在调试时查看异常数据的方法

8
你在使用Visual Studio调试时,如何轻松查看异常的Data属性内容?它是奇怪的System.Collections.ListDictionaryInternal类型。我发现可以分别查看Keys和Values:
        try {
            ... do something that throws exception with Data
        }
        catch (Exception ex) {
            throw;
        }
        finally {
        }

在监视窗口中:
ex.Data.Keys.Cast<string>()
ex.Data.Values.Cast<string>()

但是你能把它视为一个字典或类似的东西来查看吗?
2个回答

10

System.Collections.ListDictionaryInternal是一个IDictionary,因此您可以在“Watch”或“QuickWatch”窗口中评估以下表达式:

new System.Collections.Hashtable(ex.Data)

编辑:我和其他人一起创建了一个名为OzCode的商业扩展程序,用于Visual Studio,它可以让这个过程变得更加容易。使用它,您只需将鼠标悬停在异常变量上,右键单击它,选择创建自定义表达式,然后键入new System.Collections.Hashtable([obj].Data) // Data。从那时起,每当您查看异常时,您都可以以漂亮的格式查看其数据字典,无需任何手动步骤,如下所示:screenshot


1
我认为你最好的选择是创建一个函数,使用System.Diagnostics.Debug.Write()将异常内容(包括数据元素,如果有的话)输出到输出窗口。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接