Saltar al contenido

LINQPad en Visual Studio

Solución:

Es no es un dll para LINQPad: debe hacer referencia al LINQPad.exe sí mismo.

Haga clic con el botón derecho en su proyecto en Visual Studio -> Agregar referencia -> Busque la ubicación del archivo binario exe, que generalmente se encuentra en su directorio de instalación C:Program FilesLINQPad -> seleccionar LINQPad.exe.

Una vez hecho esto, puede agregar una “directiva de uso” en su archivo:

using System.Diagnostics;
using System.IO;
using LINQPad;

El método LINQPad.Util.CreateXhtmlWriter ahora estará disponible para su uso.

Además de las respuestas dadas anteriormente, encontré una solución simple para hacer la depuración “en el lugar” dentro de Visual Studio (2015).


Preparación

  1. Como escribió Ray Vega, agregue una referencia a la versión x86 (recuerde que Visual Studio todavía no es de 64 bits) de LinqPad (es decir, Añadir referencia -> Navegar a la ubicación del archivo binario exe que normalmente se encuentra en su directorio de instalación C: Archivos de programa LINQPad -> seleccione LINQPad.exe.)

  2. En el ámbito en el que desea utilizar el volcado, agregue:

    public static dynamic dump = LINQPad.Util.CreateXhtmlWriter();
    
  3. Para volcar, agregue a su código donde necesite un volcado:

    dump.Write(obj); // obj = the object to dump
    
  4. Agregue puntos de interrupción donde sea necesario.

Nota: Si necesita compatibilidad con LinqPad .Vertedero() método, declare lo siguiente en lugar de los pasos 2 y 3:

public static class DumpExtension
{
    private static dynamic dump = LINQPad.Util.CreateXhtmlWriter();
    public static T Dump<T>(this T objToDump)
    {
        dump.Write(objToDump);
        return objToDump;
    }
}

En este caso, coloque el punto de interrupción en la línea donde return objToDump declaración es.


Visualización

En la ventana de inspección, agregue

    dump.ToString()

Haga clic en el icono del catalejo y seleccione “Visualizador HTML”.
HtmlVisualizer

Cuando se alcanza un punto de interrupción, puede hacer clic en el catalejo y en la ventana emergente que se abre puede ver el volcado renderizado (tal como lo vería en LinqPad).

DumpExample

En este ejemplo, la expresión

        dump.Write(new string[] { "a", "b" });

o (si prefiere la otra sintaxis usando el método de extensión mencionado anteriormente)

        (new string[] { "a", "b" }).Dump();

fue rendido.

Tenga en cuenta que

  • porque estamos usando dynamic, a veces es necesario agregar explícitamente Microsoft.CSharp a las referencias del proyecto o obtendrá un mensaje de error. Vea la discusión aquí.
  • necesita utilizar .NET Framework 4.5.2 o superior, las versiones de framework inferiores no funcionarán
  • como en LinqPad, se agregará todo lo que descargue.
  • debe usar esto solo en pruebas unitarias, no en el código de producción, porque cuando implementa su aplicación, las declaraciones de volcado todavía están allí. Por supuesto, puede rodear todas las declaraciones de volcado (incluida la declaración del paso 2 en la sección de preparación) por #if declaraciones como:

    #if DEBUG
    dump.Write(new string[] { "a", "b" });
    #endif

    En caso de que desee vincular la referencia de LinqPad solo a la configuración DEBUG, puede encontrar una pista aquí (o con más detalle allí) sobre cómo puede lograrlo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *