Automapper custom object

2019-09-20 11:07发布

问题:

How I have configure automapper to map this:

class Source { Guid Id; double Price; }

To this:

class Destination { Guid Id; DestinationDifference Difference; }


class DestinationDifference { decimal Amount; }

回答1:

First: You should really read the FAQs on how to post a question and what information should be added. (No, I'm not the downvoter)

Here is an example how to get your mapping to work. Please note, that I've changed your classes a bit, because AutoMapper needs properties.

Source source = new Source();
source.Id = Guid.NewGuid();
source.Price = 10.0;

Mapper.Initialize(x => x.CreateMap<Source, Destination>()
    .ForMember(a => a.Difference,
        b => b.MapFrom(s => new DestinationDifference() { Amount = (decimal)s.Price })));

Destination destination = Mapper.Map<Source, Destination>(source);

Classes:

class Source
{
    public Guid Id { get; set; }
    public double Price { get; set; }
}

class Destination
{
    public Guid Id { get; set; }
    public DestinationDifference Difference { get; set; }
}

class DestinationDifference
{
    public decimal Amount { get; set; }
}


标签: c# AutoMapper