Estoy buscando una forma de acelerar una tarea repetible cuando escribo código. Tengo ReSharper y estoy pensando que una personalización podría hacer lo que necesito.¿Puede ReSharper generar código que copie propiedades de un objeto a otro?
Tengo dos objetos del mismo tipo. Quiero copiar todas las propiedades públicas de un objeto al otro objeto. Quiero que la herramienta, ReSharper en este caso, genere el código para mí. Le diré los nombres del primer objeto y el segundo. Quiero que encuentre todas las propiedades públicas del primer objeto y copie los valores al segundo objeto.
Aquí es el tipo de código que estoy mirando haber generado con una herramienta como ReSharper:
foo.Name = moo.Name;
foo.Age = moo.Age;
foo.City = moo.City;
La automatización de este código simple que copia valores de derecha a izquierda se ahorraría un montón de tiempo y estoy pensando que ReSharper puede hacerlo. Sin embargo, no he visto nada emergente en las búsquedas.
No estoy buscando una técnica de generación de código CodeSmith o una plantilla T4 porque solo quiero que genere estas líneas específicas dentro de mi clase, no genere una clase completa o un archivo separado.
¿Alguien sabe cómo presionar algunas teclas, ingrese los nombres de los objetos "foo" y "moo" y la herramienta genera estas copias de derecha a izquierda?
Actualización:
que he encontrado alguna documentación de ampliación de edificios a ReSharper, y esto probablemente se puede lograr mediante ese camino, pero se ve muy involucrado.
http://www.jetbrains.net/confluence/display/ReSharper/PowerToys+Pack+3.0+User+Guide
esto está empezando a parecerse a un desafío de fin de semana a menos que alguien ya lo ha escrito.
que nunca había oído hablar de esta herramienta. Con capas de acceso a datos y contratos de datos que hacen que este tipo de código sea una necesidad, ¡esta es una gran herramienta! – Vaccano
Automapper es definitivamente una gran cosa para algunos casos, pero puede ser MUY lenta para grandes cantidades de objetos. – Telavian
Utilizamos Automapper en una gran aplicación para empresas con una tonelada de DTO y después de 6 meses la abandonamos porque era más difícil de mantener y depurar que la antigua asignación simple de las propiedades. No debería considerarse un gran éxito contra AM, pero al final solo queríamos romper una línea de código en lugar de leer un gran mensaje de error (el mensaje de error era preciso y útil). – TheDev6