我在我的网站上使用的Automapper出现了问题,但是我找不到解决方法。我创建了一个名为AutoMapperProfile的类,在其中存放所有我的映射。
控制器长这样:
当我从SlideDTO映射到Slide时,我会收到以下错误提示:
public class AutoMapperProfile: Profile
{
private readonly IConfiguration _mapper;
public AutoMapperProfile(IConfiguration mapper)
{
_mapper = mapper;
}
protected override void Configure()
{
base.Configure();
_mapper.CreateMap<SlideDTO, Slide>();
_mapper.CreateMap<Slide, SlideDTO>();
}
}
为了便于 DI,我使用 Ninject,因此我已经在 NinjectWebCommon 中添加了以下绑定:
kernel.Bind<IMappingEngine>().ToMethod(ctx => Mapper.Engine);
kernel.Bind<IConfigurationProvider>().ToMethod(x => Mapper.Engine.ConfigurationProvider);
控制器长这样:
private readonly ISlideRepository slideRepository;
private readonly IMappingEngine mappingEngine;
public HomeController(
ISlideRepository slideRepository,
IMappingEngine mappingEngine)
{
this.slideRepository = slideRepository;
this.mappingEngine = mappingEngine;
}
[HttpGet]
public ActionResult Index()
{
var model = new IndexViewModel();
var slide = slideRepository.GetSlide();
model.Slide = mappingEngine.Map<SlideDTO, Slide>(slide);
return View(model);
}
当我从SlideDTO映射到Slide时,我会收到以下错误提示:
Missing type map configuration or unsupported mapping.
我的最佳猜测是我没有正确绑定,以至于Automapper看不到我的映射,但我不确定该如何解决。
Mapper.Engine.ConfigurationProvider.AddProfile<AutoMapperProfile>();
? - Zeeshan Ahmad Khalil