I use AutoMapper 8 in a project and I want to make use of a resolver as shown below. The problem I got this message error:
MissingMethodException: No parameterless constructor defined for this object.
and I don't know if I missing something here.
public class ExcelClientProfile : Profile
{
public ExcelClientProfile()
{
CreateMap<Ticket, ExcelClient>()
...
.ForMember(d => d.FormModel, s => s.MapFrom<FormBuilderWithAnswerResolver>());
}
}
public class FormBuilderWithAnswerResolver : IValueResolver<Ticket, ExcelClient, FormModel>
{
private IFormBuilderService _formBuilderService;
public FormBuilderWithAnswerResolver(IFormBuilderService formBuilderService)
{
_formBuilderService = formBuilderService;
}
public FormModel Resolve(Ticket source, ExcelClient destination, FormModel destMember, ResolutionContext context)
{
return _formBuilderService.GetFormBuilderWithAnswersExcel(source);
}
}
Do you know how can I make this work?
Thank you,
David
Stacktrace
An unhandled exception occurred while processing the request. MissingMethodException: No parameterless constructor defined for this object. System.RuntimeTypeHandle.CreateInstance(RuntimeType type, bool publicOnly, bool wrapExceptions, ref bool canBeCached, ref RuntimeMethodHandleInternal ctor)
AutoMapperMappingException: Error mapping types.
Mapping types: Ticket -> ExcelClient Core.Models.Ticket -> Service.Models.TicketOrderView.ExcelClient
Type Map configuration: Ticket -> ExcelClient Core.Models.Ticket -> Service.Models.TicketOrderView.ExcelClient
Destination Member: FormModel lambda_method(Closure , IQueryable , ICollection , ResolutionContext )
AutoMapperMappingException: Error mapping types.
Mapping types: IQueryable
1 -> ICollection
1 System.Linq.IQueryable1[[Core.Models.Ticket, Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> System.Collections.Generic.ICollection
1[[Service.Models.TicketOrderView.ExcelClient, Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
And also:
public class Ticket : Entity
{
public int Id { get; set; }
...
public virtual FormBuilder FormBuilder { get; set; }
public Ticket()
{
}
public object Clone()
{
return this.MemberwiseClone();
}
}
public class ExcelClient
{
...
public virtual FormModel FormModel { get; set; }
public ExcelClient()
{
}
}