Automapper 3.2.1 The Call is Ambiguous Between the Following Methods or Properties





0/5 (0 vote)
A fix for people experiencing the same issue with AutoMapper 3.2.1
Just updated Automapper on my project to 3.2.1. And I got the following error:
The call is ambiguous between the following methods or properties ‘AutoMapper.IMemberConfigurationExpression.ResolveUsing (System.Func<MYASSEMBLY.MYCLASS1,object>)’ and ‘AutoMapper.IMemberConfigurationExpression.ResolveUsing (System.Func<AutoMapper.ResolutionResult,object>)’
Mapper.CreateMap<TaskCreated, Task>()
.ForMember(x => x.Created, x => x.ResolveUsing(t => DateTime.UtcNow))
.ForMember(x => x.Modified, x => x.ResolveUsing(t => DateTime.UtcNow))
.ForMember(x => x.Deleted, x => x.Ignore());
A quick search finds other people with the same issue.
So there are 2 options.
- Use
MapFrom
:Mapper.CreateMap<TaskCreated, Task>() .ForMember(x => x.Created, x => x.MapFrom(t => DateTime.UtcNow)) .ForMember(x => x.Modified, x => x.MapFrom(t => DateTime.UtcNow)) .ForMember(x => x.Deleted, x => x.Ignore());
- Explicitly tell Automapper what object I’m using in the lambda:
Mapper.CreateMap<TaskCreated, Task>() .ForMember(x => x.Created, x => x.ResolveUsing((TaskCreated t) => DateTime.UtcNow)) .ForMember(x => x.Modified, x => x.ResolveUsing((TaskCreated t) => DateTime.UtcNow)) .ForMember(x => x.Deleted, x => x.Ignore());