transact test query licence convert code c# .net visual-studio linqpad

c# - test - sql server to linq



LINQPad en Visual Studio (2)

public static class Extensions{ public static void Dump<T>(this T o) { } public static void Dump<T>(this T o, string s) { }}

Estas líneas me permiten copiar código de LINQPad a VS y ejecutarlo sin comentar todas las líneas con .Dump () pero no es suficiente ... http://code.google.com/p/linqpadvisualizer/ - no es muy cómodo: (

El mejor resultado que obtengo al buscar LINQPad en VS es este site con el siguiente código de Pat Kujawa.

using System.Diagnostics; using System.IO; public static class Extensions { public static void Dump<T>(this T o) { string localUrl = Path.GetTempFileName() + ".html"; using (var writer = LINQPad.Util.CreateXhtmlWriter(true)) { writer.Write(o); File.WriteAllText(localUrl, writer.ToString()); } Process.Start(localUrl); } }

pero Error 1 El nombre ''LINQPad'' no existe en el contexto actual

No pude encontrar ningún LINQPad.dll en la red


Además de las respuestas dadas anteriormente, encontré una solución simple para hacer la depuración "in situ" dentro de Visual Studio (2015).

Preparación

  1. Como escribió Ray Vega, agregue una referencia a la versión x86 (¡recuerde que Visual Studio aún no es de 64 bits!) De LinqPad (es decir, Agregar referencia -> Busque la ubicación del archivo binario exe que se encuentra típicamente 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 cuando sea necesario.

Nota: si necesita compatibilidad con el método LinqPad .Dump () , 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 está la declaración de return objToDump .

Visualización

En la ventana del reloj, agregue

dump.ToString()

Haga clic en el icono del catalejo y seleccione "Visualizador de HTML".

Cuando se alcanza un punto de ruptura, 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).

En este ejemplo, la expresión

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

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

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

fue rendido

Tenga en cuenta que

  • Debido a que estamos usando dynamic , a veces se requiere agregar explícitamente Microsoft.CSharp a las referencias del proyecto o aparecerá un mensaje de error. Vea la discusión here .
  • necesita usar .NET Framework 4.5.2 o superior, las versiones de marco inferiores no funcionarán
  • Al igual que en LinqPad, todo lo que vuelvas se agregará.
  • 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 de #if como:

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

    En caso de que desee vincular la referencia de LinqPad a la configuración DEBUG solamente, puede encontrar una pista here (o más detalladamente there ) cómo puede lograrlo.


No es un archivo DLL para LINQPad al que debe hacer referencia, sino a LINQPad.exe.

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

Una vez hecho esto, entonces puede agregar una "directiva utilizando" en su archivo:

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

El método LINQPad.Util.CreateXhtmlWriter ahora estará disponible para que lo use.