c# - Replace Mapping with ConstructUsing -
i create mapping using automapper 3.2.1:
mapper.createmap<avvisopec, esitipostalizzazione>() .formember(dst => dst.idavviso, src => src.mapfrom(v => estraiidavviso(v))) .formember(dst => dst.codiceerrorepiattaforma, src => src.mapfrom(v => estraicodiceerrorepiattaforma(v.history))) .formember(dst => dst.descrizioneerrorepiattaforma, src => src.mapfrom(v => estraidescrizioneerrorepiattaforma(v.history))) .formember(dst => dst.codiceesitopostalizzazione, src => src.mapfrom(v => estraiesitopostalizzazione(v.history))) and works good. want remove parameterless construction in order utilize improve encapsulation::
public esitipostalizzazione(int idavviso, int codiceesitopostalizzazione, string codiceerrorepiattaforma, string descrizioneerrorepiattaforma) { this.idavviso = idavviso; this.codiceesitopostalizzazione = codiceesitopostalizzazione; this.codiceerrorepiattaforma = codiceerrorepiattaforma; this.descrizioneerrorepiattaforma = descrizioneerrorepiattaforma; } so far documented should utilize constructusingafter createmap() don't know how utilize it, can help me? example on web create like:
mapper.createmap<avvisopec, esitipostalizzazione>() .constructusing(x => new esitipostalizzazione(x.idavviso, ...)) but have nil x.idavviso
the x in constructusing lambda should source type, avvisopec. when you're using esitipostalizzazione constructor need provide values way doing when using mapfrom syntax.
based on code expect be:
mapper.createmap<avvisopec, esitipostalizzazione>() .constructusing(v => new esitipostalizzazione(estraiidavviso(v), estraiesitopostalizzazione(v.history), estraicodiceerrorepiattaforma(v.history), estraidescrizioneerrorepiattaforma(v.history))); c# automapper
No comments:
Post a Comment