2011-10-06 10 views
7

Estoy usando VS2010 con Resharper 5.1.Reemplazar el uso de una clase en un proyecto específico

que tienen dos proyectos, un proyecto de biblioteca (LIB) y un proyecto de aplicación (App), hace referencia a la aplicación Lib.

Lib contiene una clase X que se usa en App y Lib. En App, ahora quiero reemplazar todos los usos de X con clase Y. En mi caso, Y no está relacionado con X, pero podría heredar de X si facilita la refactorización.

Mi plan actual para usar la función "Find usos", grupo por proyecto y cambiar los usos de uno en uno. ¿Hay una forma más fácil/automatizada para hacer esto?

+0

¿qué ocurre con la sustitución rápida en el proyecto actual - reemplace el nombre de clase X con Y? – wiero

Respuesta

4

Structural Search and Replace es tu amigo aquí. Puede hacerlo a través del ReSharper | Find | Search with Pattern....

  • Defina un marcador de posición de tipo X, nómbrelo TX.
  • Haga su patrón de Búsqueda $TX$
  • Especificar para "Buscar en" "Proyecto"
  • Como comprobación, llevar a cabo la búsqueda - debería ver todos los usos de X
  • Haga clic en el botón Reemplazar palanca
  • Hacer que el patrón de reemplazar el nombre completo del Y
  • Haga clic en Reemplazar

ReSharper se sho w usted todas las menciones de X que quiere reemplazar - asegúrese de que la casilla de verificación en la parte superior del árbol esté marcada, luego haga clic en Reemplazar.

edición

De hecho, es mediante el uso de un tipo marcador de posición en nuestro patrón de Buscar que aseguran que sólo referencias al tipo X, más que cualquier otra cosa llamada X, se cambia el nombre.

Si prefiere terminar con

using A.B.C; 

/* later */ 
Y obObject = ... 

en lugar de

A.B.C.Y myObject 

I que se puede lograr esto a través de:

  1. En ReSharper | Options, Tools | Code Cleanup, definir un nuevo perfil que solo tiene directivas "Optimize 'using' "Marcada
  2. En ReSharper | Options, Languages | C# | Namespace Imports añadir A.B.C a" espacios de nombres que siempre deben imported`
  3. ReSharper | Tools | Cleanup Code Ejecutar utilizando el perfil que acaba de definir
  4. Poner en orden mediante la eliminación de A.B.C de los espacios de nombres de lista que añadieron a

aunque esto también limpiará todos los demás using s, lo que podría hacer que el control de versión difiera un poco más de lo que usted desea.

+0

Supongo que el patrón de búsqueda asegura que solo se reemplacen las referencias a la clase 'X', y no las ocurrencias de' X' en los comentarios o como nombres de propiedad? Además, como seguimiento, ¿cuál sería la forma más fácil de reemplazar los nombres completamente calificados y agregar las declaraciones correctas 'using' a los archivos relevantes? – Bubblewrap

Cuestiones relacionadas