Для этого объекта не определен беспараметрический конструктор, automapper 8 и IValueResolver - PullRequest
0 голосов
/ 14 февраля 2019

Я использую AutoMapper 8 в проекте и хочу использовать распознаватель, как показано ниже.Проблема, я получил это сообщение об ошибке:

MissingMethodException: для этого объекта не определен конструктор без параметров.

, и я не знаю, пропустил ли я что-то здесь.

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);
        }
    }

Знаете, как я могу сделать эту работу?

Спасибо,

Дэвид


Stacktrace

Произошло необработанное исключение при обработке запроса.MissingMethodException: для этого объекта не определен конструктор без параметров.System.Models.Ticket -> Service.Models.TicketOrderView.ExcelClient

Тип Конфигурация карты: Билет -> ExcelClient Core.Models.Ticket -> Service.Models.TicketOrderView.ExcelClient

Элемент назначения: FormModellambda_method (Closure, IQueryable, ICollection, ResolutionContext)

AutoMapperMappingException: типы сопоставления ошибок.

Типы сопоставления: IQueryable 1 -> ICollection 1 System.Linq.IQueryable 1[[Core.Models.Ticket, Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> System.Collections.Generic.ICollection 1 [[Service.Models.TicketOrderView.ExcelClient, Сервис, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null]]

А также:

    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()
            {

            }
        }
...