Я создал WebApi в .Net Core 2.2. Мне нужно использовать AutoFac и Automapper. Я хочу написать действие Create, когда в Dto одно свойство конвертируется из int в объект.
Конвертер выглядит так:
public class IntToOfferPlaceConverter : ITypeConverter<int, OfferPlace>
{
private readonly IOfferPlaceLogic _logic;
public IntToOfferPlaceConverter(IOfferPlaceLogic logic)
{
_logic = logic;
}
public OfferPlace Convert(int source, OfferPlace destination, ResolutionContext context)
{
var offerPlaceResult = _logic.GetById(source);
if (offerPlaceResult.Success == false)
{
return null;
}
return offerPlaceResult.Value;
}
}
Prfoile в AutoMapper:
public FileProfile()
{
CreateMap<FileDto, File>();
CreateMap<int, OfferPlace>()
.ConvertUsing<IntToOfferPlaceConverter>();
}
Модуль в Autofac:
protected override void Load(ContainerBuilder builder)
{
builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies())
.AsClosedTypesOf(typeof(ITypeConverter<,>))
.AsSelf();
}
При отображении возникает такая ошибка:
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:
FileDto -> File
GrillBer.WebApi.Dto.FileDto -> GrillBer.Models.File
Type Map configuration:
FileDto -> File
GrillBer.WebApi.Dto.FileDto -> GrillBer.Models.File
Destination Member:
OfferPlace
Проблема заключается в конструкторе, однако он регистрируется в autofac. Где я мог ошибиться?