Automapper:只有第一个包含作品

Automapper: Only first Include works

我有一个非常奇怪的问题,我无法解释。请参阅此地图以获取 AutomapperProfile:

            CreateMap<BO, AbstractDto>()
            .Include<BO, ConcreteDto1>()
            .Include<BO, ConcreteDto2>()
            .ForMember(d...));

我有相同的业务对象和一个具有两个具体实现的抽象 Dto。 如果我只使用它,AutoMapper 只识别第一个 Include,而忽略第二个并抛出异常。 我通过首先包含 ConcreteDto2 来验证这一点,这导致此映射起作用,并导致 ConcreteDto1 抛出。

我找到的最接近的答案是: AutoMapper -- inheritance mapping not working, same source, multiple destinations 但在我的例子中它绝对只需要第一个包含。

这个问题和线程中的问题一样吗,还是有其他问题?如果是这样,是否有没有代码重复的方便的解决方案?

提前致谢

马蒂亚斯

这是 AutoMapper 4.0 中的错误,已打开 PR 以针对 4.1 修复它。现在,您需要使用 Mapper.Initialize 而不是 Mapper.CreateMap 来执行初始配置。