Mi pregunta puede ser tonta, pero estoy bastante seguro de que echo de menos una parte muy importante del problema. Tengo que hacer una asignación de objeto a objeto (entre las clases de dominio utilizadas en el proyecto C# y las clases que se envían a clientes flash).¿Cuáles son las ventajas de usar Automapper?
Mi primera opción fue Automapper. Pero he tenido algunos problemas con él (propiedades anidadas, no definido constructor sin paramterless). Resulta que no es tan fácil mapear un tipo realmente complejo con Automapper.
Entonces mi pregunta es: ¿Por qué no aplicar métodos como:
ClassA GetClassAByClassB(ClassB pObj)
{
ClassA objA = new ClassA();
objA.Prop1 = pObj.Prop1;
objA.NestedType.Prop2 = pObj.Prop2;
//....Some more.....
return objA;
}
Tiene exactamente el mismo nivel de flexibilidad, como mapeo realizado utilizando AutoMapper. Aún debe indicar qué propiedad del objeto de origen se copia en qué propiedades del objeto de destino. Simplemente haz esto usando '=' y no con la expresión lambda.
Pero si cambia algo en sus clases de dominio, tiene que cambiar esta parte de "mapeo" de todos modos. Entonces, ¿qué es lo principal que debería convencerme de usar Automapper (como dije al principio, estoy bastante seguro de que me estoy perdiendo algo importante).
¿Qué pasa con las propiedades que no tienen los mismos nombres? ¿Y propiedades anidadas? Creo que debería cambiar las convenciones, pero a veces la propiedad de un lado es 'PositionX' y del otro lado simplemente 'X'. (solo un ejemplo: las propiedades anmes pueden ser bastante impredecibles). Entonces, ¿no es como si no debería usar Automapper en mi caso? – Katalonis
@Katalonis - Luego configura el asignador de forma segura con lambdas. Se agregó una muestra de código y un enlace. –