gpt4 book ai didi

c# - Automapper 和 Autofac

转载 作者:太空狗 更新时间:2023-10-30 01:34:38 26 4
gpt4 key购买 nike

我正在尝试让 Automapper 在 ASP.Net MVC 应用程序中与 Autofac 配合使用。

我已按照以下答案中的说明进行操作:Autofac 3 and Automapper

但是它在第一次调用 _mapper.Map<>(...) 时失败了

Autofac 是这样设置的:

builder.RegisterType<EntityMappingProfile>().As<Profile>();

builder.Register(ctx => new ConfigurationStore(new TypeMapFactory(), MapperRegistry.Mappers))
.AsImplementedInterfaces()
.SingleInstance()
.OnActivating(x =>
{
foreach (var profile in x.Context.Resolve<IEnumerable<Profile>>())
{
x.Instance.AddProfile(profile);
}
});

builder.RegisterType<MappingEngine>().As<IMappingEngine>();

然后在我的业务层我有这样的服务:

public class LinkService : ILinkService
{
private readonly ILinkRepository _linkRepository;
private readonly IMappingEngine _mapper;
public LinkService(ILinkRepository linkRepository, IMappingEngine mapper)
{
_linkRepository = linkRepository;
_mapper = mapper;

}

public IEnumerable<LinkEntity> Get()
{
var links = _linkRepository.Get().ToList();
return _mapper.Map<IEnumerable<Link>, IEnumerable<LinkEntity>>(links);
}

public LinkEntity GetById(int id)
{
var link = _linkRepository.GetById(id);
return _mapper.Map<Link, LinkEntity>(link);
}
}

调用_mapper.Map<IEnumerable<Link>, IEnumerable<LinkEntity>>失败:

Missing type map configuration or unsupported mapping.

我有什么地方可能出错的想法吗?

最佳答案

您缺少创建 Mapper,在 EntityMappingProfile 中创建指向 LinkEntity 的 map 链接:

  internal class EntityMappingProfile :Profile
{
protected override void Configure()
{
base.Configure();
this.CreateMap<Link, LinkEntity>();
}
}

关于c# - Automapper 和 Autofac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29932332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com