2011-11-24 11 views
8

¿Cómo se puede ver fácilmente el contenido de la propiedad de Datos de una excepción en la ventana Inspección mientras se depura en Visual Studio? Es del tipo raro System.Collections.ListDictionaryInternal.Ver Exception.Data en Watch Window durante la depuración

me di cuenta de que puede ver las claves y valores por separado:

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

en la ventana Inspección:

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

Pero se puede ver como un diccionario o algo?

Respuesta

10

System.Collections.ListDictionaryInternal es un IDictionary, por lo que sólo puede evaluar la expresión siguiente en la ventana Inspección o Inspección rápida:

new System.Collections.Hashtable(ex.Data) 

Editar: que co-creado un commercial extension for Visual Studio called OzCode que hace que este sea mucho más fácil. Con él, simplemente puede pasar el puntero del ratón sobre la variable Excepción, hacer clic con el botón derecho, seleccionar Create Custom Expression y escribir new System.Collections.Hashtable([obj].Data) // Data. A partir de ese momento, cada vez que vea una excepción, podrá ver su diccionario de datos de una forma muy bien formateada sin ningún tipo de pasos manuales, como por ejemplo: screenshot

1

Creo que su mejor opción es crear una función para generar el contenido de la Excepción, incluidos los elementos de Datos, si los hay, a la ventana de Salida usando System.Diagnostics.Debug.Write().

Cuestiones relacionadas