2010-02-15 9 views
7

¿Hay una manera de conseguir AutoMapper para asignar un gráfico fuente compleja como:¿Puede Automapper asignar un gráfico fuente complejo a un destino plano sin prefijos en las propiedades de destino y sin mapeos personalizados?

public class Source { 
    public string Name { get; set; } 
    public SourceSub Sub { get; set; } 
} 

public class SourceSub { 
    public string ValA { get; set; } 
    public string ValB { get; set; } 
} 

a un destino plana que se parece a:

public class Dest { 
    public string Name { get; set; } 
    public string ValA { get; set; } 
    public string ValB { get; set; } 
} 

Sé que algo como esto funcionará para un destino:

public class Dest { 
    public string Name { get; set; } 
    public string SubValA { get; set; } 
    public string SubValB { get; set; } 
} 

sin embargo, estoy buscando una manera de asignar al destino sin necesidad de un prefijo en las propiedades de destino (para los niños clas s en la fuente) siempre que los nombres en las propiedades de la clase hija de la fuente coincidan con los nombres de las propiedades de destino. ¿Hay alguna manera de decirle a Automapper que proyecte las propiedades en una clase secundaria de la fuente a una clase de destino plana sin mapear cada miembro individualmente?

+0

esa es una tarea fácil para el ValueInjecter, porque usted puede hacer con ella cualquier algoritmo de mapeo que pueda imaginar http://valueinjecter.codeplex.com/documentation – Omu

+0

¿Ha cambiado esto a lo largo de los años? Sería genial poder hacer algo como esto: CreateMap (). ForSourceMember (s => s.Sub, o => o.FromBase ()) –

Respuesta

1

No, este no es un escenario admitido en este momento. Lo vimos por un tiempo, pero descubrimos que la tasa de colisión de nombres es demasiado alta para nuestras aplicaciones, y tener el nombre aplanado preserva el contexto completo de donde proviene ese valor.

+0

@Jimmy: Gracias por responder. Primero, déjame decirte que amamos a AutoMapper. Gracias por tu contribución. Sería bueno agregar una característica a V2 para admitir una opción para mapear prefijos diferentes a los que la clase hija tiene el nombre del objeto aplanado. Además, tal vez una opción para activar/desactivar lo que estoy tratando de hacer para mapas individuales. Solo una solicitud, sé que hay muchas otras solicitudes en su cola y esta puede entrar en conflicto o ser demasiado difícil. –

+0

También me gustaría una forma de poder hacer esto. – Schneider

Cuestiones relacionadas