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 constructusing
after 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