Quick error fix for anyone experiencing the same issue. The call is ambiguous between the following methods or properties. Looks like the syntax for ResolveUsing has changed as of 3.2.0.
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());