Просмотр Exception.Data в окне просмотра при отладке - PullRequest
8 голосов
/ 24 ноября 2011

Как вы можете легко просматривать содержимое свойства Data исключения в окне просмотра при отладке в Visual Studio?Это странный тип 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>()

Но вы можете просмотреть его как словарь или что-то в этом роде?

Ответы [ 2 ]

10 голосов
/ 24 ноября 2011

System.Collections.ListDictionaryInternal - это IDictionary, поэтому вы можете просто оценить следующее выражение в окне Watch или QuickWatch:

new System.Collections.Hashtable(ex.Data)

Редактировать: Я со-создал коммерческое расширение для Visual Studio под названием OzCode , которое делает это намного проще.С его помощью вы можете просто навести курсор на переменную Exception, щелкнуть по ней правой кнопкой мыши, выбрать Create Custom Expression и ввести new System.Collections.Hashtable([obj].Data) // Data.С этого момента, всякий раз, когда вы просматриваете исключение, вы сможете видеть его словарь данных в хорошо отформатированном виде без каких-либо ручных шагов, например: screenshot

1 голос
/ 24 ноября 2011

Я думаю, что вам лучше всего создать функцию для вывода содержимого исключения, включая элементы данных, если они есть, в окно вывода с помощью System.Diagnostics.Debug.Write().

...