Ventana inmediata de Visual Studio: cómo ver más de los primeros 100 elementos

88

Estoy tratando de ver las propiedades de un objeto con más de 300 propiedades en la ventana inmediata de Visual Studio 2005. Solo se muestran los primeros 100 elementos, seguidos de este título:

 < More... (The first 100 of 306 items were displayed.) >

Estoy tratando de ver el resto de los elementos, pero no puedo entenderlo.

Me doy cuenta de que puedo verlos en una ventana de inspección, pero no es lo mismo.

DOK
fuente

Respuestas:

38

Sé que es demasiado tarde. Sin embargo, si agrega su objeto a la ventana de inspección. Expanda las propiedades, donde se muestran todas. Luego Ctrl-A y Copiar. Luego puede pegar en Excel para obtener una lista organizada de propiedades y sus valores.

Gene Whitaker
fuente
Me he estado saboteando durante 5 años al no hacer esto.
secretwep
53

Sé que esto fue hace casi años, pero me encontré con esto hoy. A veces es útil ver la lista en la ventana inmediata en lugar de mirar en la ventana de observación. Puede ver fácilmente más resultados que los primeros 100 utilizando:

yourList.Skip(100).ToArray()

Lo que realmente no toma mucho tiempo para escribir y funciona bien, fue útil para mí.

Actualización : como se señala en los comentarios a continuación, esta respuesta es realmente incorrecta y se aplica SOLO a colecciones y NO a objetos con muchas propiedades. Lo dejo aquí porque mucha gente parece haberlo encontrado útil.

Ian Routledge
fuente
Gracias por agregar al tema. Como ha descubierto, a veces las preguntas "antiguas" tienen respuesta a los problemas de hoy.
DOK
¿No estás seguro de qué quieres decir con "tuLista" aquí? ¿Te refieres al objeto que estoy tratando de ver? Si es así, no me funciona en Visual Studio Pro 2013
Kunal
yourList sería el objeto (colección) que está intentando ver y normalmente sería del tipo IList <T> o IEnumerable <T>. Espero que ayude.
Ian Routledge
2
Supongo que eso funciona si desea mostrar los elementos restantes en una colección, pero esta respuesta es inútil para Propiedades, como se menciona en las preguntas originales. No sé por qué esta es la respuesta elegida. La respuesta de Gene Whitaker a continuación es mucho más útil en mi opinión.
Simon ML
1
Buen punto, tienes razón, ¡esta respuesta es realmente incorrecta! He agregado un comentario de actualización - no dude en modificarlo, etc.
Ian Routledge
16

La ventana inmediata fue diseñada para ser una herramienta de vista rápida. Si desea ver más detalles, tendrá que verlo en la Ventana de inspección o en la Ventana de inspección rápida.

Otra opción es escribir un complemento de Visual Studio que funcione de manera similar a la ventana Inmediato, pero que tenga más opciones.

Gabriel McAdams
fuente
Gracias. Tenía la esperanza de haber pasado por alto algo simple, algo que no involucre tanto hacer clic, algo que facilite el desplazamiento por cientos de elementos. Creo que ha identificado las mejores alternativas.
DOK
1
@DOK: Hay una mejor respuesta a esta pregunta ahora que puede ser digna de ser aceptada.
Eric J.
@Gabriel ¿Fue realmente diseñado para ser una herramienta de vista rápida? Parece ser mucho más que eso, aunque tiene y es útil para esa capacidad. Me parece único y útil para la evaluación, tanto profética como especulativa. Creo que es más que una máquina "Qué es" con la que ver, sino una máquina "Qué pasaría si" con la que explorar.
G DeMasters
4

Siempre creo un método de extensión para exportar objetos a xml cuando depuro de esta manera. Es muy útil para solucionar problemas de datos de objetos. Esto es lo que uso:

public static void SerializeToXML(this object entity)
{
    System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(entity.GetType());

    System.IO.StreamWriter file = new System.IO.StreamWriter(string.Format(@"{0}\{1}.xml", Directory.GetCurrentDirectory(), entity.GetType().Name));
    writer.Serialize(file, entity);
    file.Close();
}

No es 100% prueba completa, pero la mayoría de las veces es perfecto. Creará un archivo xml en el directorio de la aplicación con el nombre de los objetos como nombre de archivo. En la ventana inmediata puede escribir el nombre del objeto y luego .SerializeToXML ().

entonces: myList.SerializeToXML ()

Juan
fuente