Tenga en cuenta la situación siguiente. Tengo varias clases que comparten una clase base común y he definido una asignación de Automapper para cada clase derivada. Algo como esto:¿Cómo puedo usar Automapper para asignar un objeto a un tipo de destino desconocido?
class A : Base {}
class B : Base {}
class ContractA : ContractBase {}
class ContractB : ContractBase {}
void Foo()
{
Mapper.CreateMap<A, ContractA>();
Mapper.CreateMap<B, ContractB>();
}
Hasta ahora todo bien. Pero ahora quiero crear un método como este:
ContractBase Foo()
{
Base obj = GetObject();
return Mapper.???
}
El problema es que todas las variantes Mapa de AutoMapper requieren que sea saber el tipo de destino en tiempo de compilación o tener un objeto de ese tipo en tiempo de ejecución. Esto es muy frustrante ya que he definido solo un mapa para cada tipo de fuente. AutoMapper debería poder inferir el tipo de destino dado solo el tipo de fuente.
¿Hay alguna forma de evitar esto? Quiero evitar crear un tipo de fuente de mapeo de diccionario para los tipos de destino. Si bien esto funcionaría, significaría que esencialmente tendría que definir dos asignaciones para cada tipo de fuente.
uso valueinjecter.codeplex.com – Omu