2011-11-24 17 views
8

Jak łatwo można oglądać zawartość właściwości Data wyjątku w oknie Watch podczas debugowania w programie Visual Studio? Jest to dziwny typ System.Collections.ListDictionaryInternal.Wyświetl Exception.Data w oknie Watch podczas debugowania

zorientowali się, można zobaczyć klucze i wartości oddzielnie:

 try { 
      ... do something that throws exception with Data 
     } 
     catch (Exception ex) { 
      throw; 
     } 
     finally { 
     } 

W oknie Watch:

ex.Data.Keys.Cast<string>() 
ex.Data.Values.Cast<string>() 

Ale można go zobaczyć w słowniku, czy coś?

Odpowiedz

10

System.Collections.ListDictionaryInternal jest IDictionary, więc można po prostu ocenić następujące wyrażenie w oknie Watch lub QuickWatch:

new System.Collections.Hashtable(ex.Data) 

Edit: I wspólnie stworzyliśmy commercial extension for Visual Studio called OzCode sprawia, że ​​to o wiele łatwiejsze. Za pomocą tego można po prostu najechać kursorem na zmienną Exception, kliknąć ją prawym przyciskiem myszy, wybrać Create Custom Expression i wpisać new System.Collections.Hashtable([obj].Data) // Data. Od tego momentu, gdy obejrzysz wyjątek, będziesz mógł zobaczyć jego słownik danych w ładnie sformatowany sposób, bez żadnych ręcznych czynności, takich jak: screenshot

1

Myślę, że najlepiej jest utworzyć funkcję wyprowadzania zawartości wyjątku, w tym elementów danych, jeśli są, do okna wyjściowego za pomocą System.Diagnostics.Debug.Write().