2011-11-24 11 views
8

Come è possibile controllare facilmente il contenuto della proprietà Data di un'eccezione nella finestra di controllo durante il debug in Visual Studio? È del tipo strano System.Collections.ListDictionaryInternal.Visualizza Exception.Data nella finestra di controllo durante il debug

ho capito si possono vedere le chiavi e valori separatamente:

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

nella finestra di controllo:

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

Ma si può vedere come un dizionario o qualcosa del genere?

risposta

10

System.Collections.ListDictionaryInternal è un IDictionary, quindi si può solo valutare la seguente espressione nella finestra di controllo o Controllo immediato:

new System.Collections.Hashtable(ex.Data) 

Edit: ho co-creato una commercial extension for Visual Studio called OzCode che rende questo molto più facile. Con esso, puoi semplicemente passare il mouse sopra la variabile Exception, fare clic con il pulsante destro del mouse, scegliere Create Custom Expression e digitare new System.Collections.Hashtable([obj].Data) // Data. Da quel momento in poi, ogni volta che visualizzi un'eccezione, sarai in grado di vedere il suo dizionario dei dati in un modo ben formattato senza passaggi manuali, ad esempio: screenshot

1

Penso che la soluzione migliore è creare una funzione per generare il contenuto di Eccezione, inclusi gli elementi Dati, se presenti, nella finestra Output utilizzando System.Diagnostics.Debug.Write().

Problemi correlati