Mappare una proprietà a un elemento della raccolta

Ho setacciato la documentazione di AutoMapper per cercare di trovare una soluzione consigliata a questo, ma non sono stato in grado di trovarlo.

Diciamo che ho una class come la seguente

public class Foo { public string Note { get; set; } } 

questa class viene popolata dal client e viene mappata alla seguente class di oggetti di dominio

 public class Bar { public IList Notes { get; set; } } 

dove è la nota

 public class Note { public string Text { get; set; } // other properties excluded for brevity } 

Mi piacerebbe mappare la proprietà della stringa Note su Foo , in primo luogo alla proprietà Text su una nuova istanza di Note e quindi aggiungere quella Note alla raccolta Notes su Bar . Sto usando un ValueResolver per eseguire la prima parte di questa operazione (mappando la stringa a una nuova istanza di Note ) ma non sono sicuro di come procedere sulla seconda parte (mappando quell’elemento a un elemento in una raccolta).

Qual è il modo più pulito per farlo?

Sto pensando che qualcosa del genere dovrebbe funzionare (non testato – basta digitare ad alta voce):

 Mapper.CreateMap().ForMember(d => d.Notes, opt => opt.MapFrom(s => new List { new Note { Text = s.Note } }); 

MODIFICARE

È anche ansible utilizzare la funzionalità PostMappa di AfterMap . Questo lambda verrebbe eseguito dopo che Automapper ha eseguito i suoi mapping regolari:

 .AfterMap((s,d) => d.Notes.Add(new Note { Text = s.Note }));