AutoMapper and flattening nested arrays
        Posted  
        
            by 
                Bryan Slatner
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Bryan Slatner
        
        
        
        Published on 2012-11-12T04:08:30Z
        Indexed on 
            2012/11/12
            5:00 UTC
        
        
        Read the original article
        Hit count: 450
        
I'm trying to use AutoMapper to flatten multiple levels of arrays.
Consider the following source classes:
class X {
    public string A { get; set; }
    public Y[] B { get; set; }
}
class Y {
    public string C { get; set; }
    public Z[] D { get; set; }
}
class Z {
    public string E { get; set; }
    public string F { get; set; }
}
And the following destination:
class Destination {
    public string A { get; set; }
    public string C { get; set; }
    public string E { get; set; }
    public string F { get; set; }
}
What I'd like to be able to do is get a List from one or more X, e.g.:
Mapper.Map<IEnumerable<X>, IEnumerable<Destination>>(arrayOfX);
I'm unable to figure out what sort of mapping configuration to use to achieve this. MapFrom seems like the way to go for 1:1 compositions, but doesn't seem to be able to handle the array (or other enumerable) unless I use AutoMapper's destination naming convention.
Any insights on how to achieve this?
© Stack Overflow or respective owner