2012-01-13 14 views
6

Cuando escribo mis API para aplicaciones que siempre siguen un patrón establecido (quién no !?) que tiene este aspecto:¿Hay alguna manera de generar múltiples archivos a través de una plantilla/macro con Resharper?

User (Folder/Namespace) 
    User.cs 
    UserDao.cs 
    UserDaoFactory.cs 
    UserService.cs 
    UserServiceFactory.cs 

sé ReSharper tiene plantillas de archivos que ya utilizan, pero sería muy bueno si No tuve que agregar individualmente cada archivo que puede ser extremadamente tedioso cuando trabajas con más de 30 entidades en una aplicación. Si no puedes hacer esto con Resharper, ¿hay alguna forma de crear algún tipo de macro con Visual Studio que ejecute tus plantillas de archivos de Resharper?

+1

Desafortunadamente no funciona con ReSharper, debe crear sus propias plantillas de Visual Studio. [Este enlace] (http://msdn.microsoft.com/en-us/library/6db0hwky%28VS.80%29.aspx) debería ayudarlo a comenzar. – Nuffin

Respuesta

6
  1. Crear todas estas clases en un solo archivo (crear una plantilla de archivo que contiene el conjunto de clases estándar si quieres)
  2. Escribe tu lógica
  3. Prensa Shift + Alt + L a poner el foco en el archivo en Solution Explorer
  4. Presione Ctrl + Shift + R para mostrar Refactorizar este menú con una lista de refactorizaciones aplicables.
  5. Seleccione Mueva los tipos en los archivos coincidentes, complete el asistente de refactorización y observe las clases que se separan en archivos individuales.
  6. Para colocar todas las clases recién creadas en una carpeta, selecciónelas en el Explorador de soluciones e invoque nuevamente Refactorice este.
  7. Esta vez, seleccione Mover a la carpeta.
  8. Especifique el nombre de la nueva carpeta en el asistente de refactorización, presione Cree esta carpeta y complete el asistente.
+0

¿No es más fácil colocar el archivo en la carpeta antes de refaccionarlo? Al igual que, al elegir la ubicación para crear el nuevo archivo? – Nuffin

+0

Comenzar con una nueva carpeta también es absolutamente correcto, siempre que sepa dónde exactamente debe ubicarse. Con las funciones de refactorización de proyectos de ReSharper, puede permitirse el lujo de no estar seguro) – gorohoroh

+0

Si bien agradezco esta respuesta (+1 en adelante), aún no proporciona suficiente automatización para la frecuencia con la que hago esto. Estoy buscando algo que sería esencialmente hacer clic derecho en una carpeta en el explorador de soluciones, elegir mi tipo de archivo de ese menú, ingresar el nombre de la clase base (Usuario en mi ejemplo) y generaría la carpeta y todos los archivos anteriores más el código repetitivo. – SventoryMang

0

Consideraría utilizar plantillas .tt con ReSharper.

  1. crear archivo maestro con ReSharper.
  2. usando uno o varios archivos tt para generar automáticamente archivos dependientes (.partial.cs) con palabra clave parcial en el mismo.
  3. amplíe las clases generadas si es necesario.
2

Parece que R # 8 añadió esta característica

Desde el Resharper Help Page

A partir de ReSharper 8.0, cada plantilla de archivos puede agregar más de un archivo cuando se aplica. Esto> puede ser útil para WPF, Web y otros proyectos donde los datos relacionados se pueden guardar en diferentes archivos.

Aquí están algunas cosas que usted necesita saber acerca de las plantillas de varios archivos:

  • una plantilla de archivo siempre incluyen un archivo principal y, opcionalmente, cualquier número de archivos secundarios. Tan pronto como agregue un archivo secundario al , cualquier plantilla de archivo obtendrá una plantilla de varios archivos.
  • Al agregar un archivo secundario , puede hacer referencia a cualquier plantilla de archivo existente (Agregar archivo desde la opción de plantilla existente). Tenga en cuenta que si la plantilla referenciada también tiene varios archivos, solo se agregará el archivo principal de la plantilla referenciada cuando aplique la plantilla.
  • El conjunto de parámetros abarca todos los archivos de una plantilla de varios archivos. Es decir, si usa el mismo parámetro $ PARAM $ en varios archivos de una plantilla de varios archivos, tendrá el mismo valor en todos los archivos relacionados cuando se aplique la plantilla .
  • Si una plantilla de varios archivos tiene parámetros editables, la Súper sesión Caliente , que se implementa al aplicar esta plantilla, lo guiará a través de todos los archivos creados donde se requiera la entrada del usuario.
Cuestiones relacionadas