tutorial - Copie valores de objetos en el modo de depuración de Visual Studio
visual studio code shortcuts windows (6)
Al usar atributos para decorar sus clases y métodos , puede tener un valor específico de la visualización de su objeto durante la depuración con el atributo DebuggerDisplay, por ejemplo
[DebuggerDisplay("Person - {Name} is {Age} years old")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
En el modo de depuración de Visual Studio, es posible desplazarse sobre las variables para mostrar su valor y luego hacer clic derecho en "Copiar", "Copiar expresión" o "Copiar valor".
En caso de que la variable sea un objeto y no solo un tipo básico, hay un signo + para expandir y explorar el objeto. ¿Hay alguna forma de copiar todo eso en el portapapeles?
En la ventana inmediata, escriba
? name_of_variable
Esto imprimirá todo , y puede copiarlo en cualquier lugar que desee, o usar las características de registro de la ventana inmediata para escribirlo automáticamente en un archivo.
ACTUALIZACIÓN : supongo que estaba preguntando cómo copiar / pegar la estructura anidada de los valores para que pueda buscarla textualmente, o para que pueda guardarla en el lateral y luego comparar el estado del objeto con ella. Si estoy en lo cierto, es posible que desee verificar la extensión comercial de Visual Studio que creé, llamada OzCode , que le permite hacer esto mucho más fácilmente a través de las funciones "Buscar" y "Comparar".
ACTUALIZACIÓN 2 Para responder a la pregunta de @pbumkin, o el nuevo EAP tiene una nueva función de exportación, permite a los usuarios exportar los valores de las variables a código Json, XML, Excel o C #.
Descripción completa: soy el cocreador de la herramienta que describí aquí.
Existe una extensión reciente de Object Exporter que hace esto de forma conveniente.
http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/
Extensión: https://visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f
Google me llevó a esta pregunta de hace 8 años y terminé usando ObjectDumper para lograr algo muy similar a copiar y pegar datos del depurador. Fue una brisa.
Sé que la pregunta se hizo específicamente sobre la información del depurador , pero ObjectDumper proporciona información que es básicamente la misma. Supongo que aquellos que buscan en Google esta pregunta son como yo y solo necesitan los datos para depuración y no les importa si provienen técnicamente del depurador o no.
No es exactamente lo que está pidiendo, pero puede agregar un reloj para ese objeto, y en la ventana del reloj, expanda y seleccione todo lo que desea copiar y luego cópielo.
Puede ejecutar el código siguiente en la ventana inmediata y exportará a un archivo xml la representación XML serializada de un objeto:
(new System.Xml.Serialization.XmlSerializer(obj.GetType())).Serialize(new System.IO.StreamWriter(@"c:/temp/text.xml"), obj)
Fuente: Visual Studio cómo serializar el objeto del depurador