Saturday, 15 June 2013

c# - Replace Mapping with ConstructUsing -



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