2010-05-12 10 views
9

A menudo quiero abrir una clase de sistema en una vista de fuente, para poder explorar las propiedades y los métodos expuestos por la clase. A continuación se muestra la captura de pantalla de lo que quiero decir:Visual Studio - forma fácil de mostrar la definición de tipo como código fuente

Srting from metadata http://img443.imageshack.us/img443/940/stringfrommetadata.png

Por lo general hago esto seleccionando el nombre de la clase y pulsando F12 (o clic derecho> Ir a definición). Sin embargo, si no lo tengo listo en algún lado, lo he escrito y luego voy a Definición. La mayoría de las veces tengo que borrar lo que escribí más tarde.

¿Hay alguna manera de mostrar esta vista sin tener que escribir el nombre de clase? El cuadro de diálogo VS2010 Navigate To no es compatible con esto.

EDIT: Cuando publiqué la pregunta, no utilicé ningún complemento de Visual Studio. Ahora que me di cuenta de que tenía licencia completa de CodeRush (gracias a la promoción StackOverflow para usuarios con 10K rep), aceptaré respuestas que utilicen CodeRush o Refactor !.

EDITAR: En esta etapa, no he llegado realmente a ningún lado al intentar responder esta pregunta. Voy a dejarlo abierto y dejar que la recompensa se conceda automáticamente a Rory mientras explica lo que está sucediendo mejor. Mientras tanto (el calendario lo permite) voy a investigar haciendo esto con DXCore ya que creo que debería ser posible.

Respuesta

2

No hay forma de que sepa hacer esto en Visual Studio 2010. Sin embargo, puede hacerlo en ReSharper a través del menú 'navegar a'. Le sugiero que pruebe la versión de prueba de 30 días de ellos, y si realmente necesita esto, cómprelo.

3

No conocía esa nueva función "Navegar hacia", pero solía usar Reflector para este tipo de cosas. La versión pro ofrece cierta integración con Visual Studio (haciendo clic con el botón derecho en el método y seleccionando "Abrir en .NET Reflector"). Abrirá la ventana del reflector y no mostrará el código en el VS mismo. Puede watch the demo que muestra esta característica y algunas otras.
Esta no es la mejor respuesta que esperaría, pero es una buena opción para saber.

7

La vista que está viendo parece haber sido construida por algún tipo de análisis de la IL del marco. Sin saber el tipo que intentas mirar, no se puede realizar ninguna deconstrucción. Por lo tanto, creo que es poco probable que encuentres exactamente lo que has dicho que estás buscando.

Sin embargo, permítanme sugerir algunas alternativas.

Exención de responsabilidad: Trabajo para DevExpress como CodeRush Community Evangelist.

El Examinador de objetos (Ctrl +Alt +J) Esta pantalla se carga sin tratar de mostrar cualquier tipo particular, por lo tanto, será hasta usted para encontrar el tipo en cuestión. Sin embargo, todos los tipos están disponibles y se proporciona la funcionalidad de búsqueda completa. una vez que el tipo que está buscando o se encuentra, todos los miembros están en la lista y disponibles.

Actualización: Si se utiliza la (Ctrl +K,Ctrl + R ) acceso directo para iniciar el explorador de objetos, a continuación, se pondrá en marcha centrado en el cuadro de búsqueda. Esto es invaluable.

Hay una serie de características de CodeRush que pueden resultar útiles al intentar localizar el código.

TabToNextReference (Tab) Mientras que el cursor se coloca dentro de un tipo, golpear la tecla de tabulación y la siguiente referencia a ese tipo se ubicará. More Details

Referencias toolwindow (Shift +F12) Cuando se activa las referencias ToolWindow le mostrará cualquier referencia al tipo o miembro actual. Esta ventana de herramientas también se puede usar para navegar por dichas referencias. La ventana References Toolwindow se puede usar tanto en demanda como en modo Live. esto le permite tener la actualización de la ventana mientras navega su código (a través del mouse o el teclado) y ubica todas las referencias de cualquier símbolo sobre el que caiga el símbolo de intercalación.

QuickNav (Ctrl +Shift +Q): Esta característica es más cercano en estilo a NavigateTo función de VS2010. QuickNav localizará símbolos que coincidan con lo que escriba en su cuadro de filtro. Esta instalación también es compatible con la búsqueda Camel Case. More details

QuickNav es también much more configurable que es VS contraparte

Finalmente

Por favor, también tenga en cuenta que CodeRush es construir sobre la DXCore, un marco que permite a los usuarios crear sus propios plugins para su uso junto entre sí y CodeRush.

Este marco ha sido varias veces leveraged by the community para agregar funcionalidad adicional. Así que incluso si usted no ve ninguna cosa bastante a sus necesidades, considere lo que sugiere algo a la comunidad by way of the forums o incluso ponerse en contacto conmigo directamente RoryB en DevExpress punto com

estoy seguro de que hay algo que podemos hacer para ayudarle out :)

+0

Gracias Rory por una excelente publicación. Siento, sin embargo, que debería ser capaz de encontrar lo que estoy buscando, ya que todo lo que quiero es la funcionalidad "Ir a definición" (que supongo que está expuesta por la extensibilidad VS) mientras le proporciono un nombre de tipo completo. Piense en el cuadro de diálogo QuickNav que indexará todos los ensamblados a los que se hace referencia y realizará una definición dada un tipo. –

+0

Lo siento, Igor, parece que he entendido mal/he leído mal tu solicitud original. Parecía que estabas buscando localizar tu tipo de información sin proporcionar realmente el tipo. Ahora que volví a leer, parece que le complace proporcionar este tipo, pero preferiría no tener que eliminarlo de su editor después. –

0

Una serie de complementos le permiten navegar por los objetos (aunque generalmente en una vista de árbol de navegador de objetos en lugar de un formulario de "encabezado"). Creo que Resharper, CodeRush y Visual Assist X tienen variaciones sobre este tema).

Sin embargo, un complemento a considerar (ya que es gratis) es el VS Productivity Power Tools. Se añade una ventana Solution Navigator que da una visión en su solución al igual que el Explorador de soluciones, pero (entre otras mejoras):

  • puede buscar & filtro de los archivos de la lista, por ejemplo, mostrar solo los archivos que se llaman Prueba.
  • puede "expandir" cualquier entrada de archivo para mostrar los tipos y miembros dentro de ella.
+0

Desafortunadamente, Solution Navigator realmente no hace referencia a los tipos que no están en la solución (es decir, 'System.String'). –

+0

Sí. Me encantaría una "vista de metadatos" (como se publicó en la pregunta), para cualquier clase en la que solicite ayuda. Tal vez sea el programador de C++ que intento volver, pero encuentro que un "archivo de encabezado" es el resumen más útil y legible de una clase, mucho más fácil de asimilar que los navegadores de objetos y la documentación de MSDN, porque está en la forma exacta que leemos todo el día todos los días. –

+0

Creo que estamos en el mismo barco. No hay nada que detenga teóricamente esta funcionalidad. Supongo que mis opciones son hackear la extensibilidad VS o hacer menos StackOverflow, que es el uso principal de esta función. –

Cuestiones relacionadas