automapper - Proxy<IEnumerable> 类型中的方法 'GetEnumerator' 没有实现

标签 automapper

使用 AutoMapper 时出现以下错误

Method 'GetEnumerator' in type 'Proxy' from assembly 'AutoMapper.Proxies, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005' does not have an implementation.



在我的存储库中,我有一个私有(private)方法
private IMapper GetMapper()
{
    var config = new MapperConfiguration(cfg => {
        cfg.CreateMap<MyClass, PersistenceModels.MyClass>();
        cfg.CreateMap<IEnumerable<PersistenceModels.MyClass>, IEnumerable<MyClass>>();
    });

    return new Mapper(config);
}

然后我按如下方式使用它
var mapper = GetMapper();
var userInfo = mapper.Map<IEnumerable<PersistenceModels.MyClass>, IEnumerable<MyClass>>(userInfoRaw);
MyClass类型相同并且具有 IEnumerable属性(property)
public IEnumerable<string> ImageUris { get; set; }

任何想法如何解决这个问题?

编辑

我不是映射接口(interface)定义的类型,而是映射具体类型的集合,因此 IEnumerable界面。

最佳答案

解决方案是不使用 IEnumerable创建 map 时,仅在使用 map 时。

所以,在我改变的配置中

cfg.CreateMap<IEnumerable<PersistenceModels.MyClass>, IEnumerable<MyClass>>();


cfg.CreateMap<PersistenceModels.MyClass, MyClass>();

一切正常。

关于automapper - Proxy<IEnumerable> 类型中的方法 'GetEnumerator' 没有实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39430116/

相关文章:

asp.net-mvc-3 - AutoMapper 不会将计算字段映射到标量

c# - 使用 AutoMapper 映射集合

c# - Automapper 忽略只读属性

asp.net-mvc - AutoMapper.Mapper 不包含 CreateMap 的定义

c# - 依赖解析器的 Automapper IMapper 问题

自动映射器将 IList<> 映射到 Iesi.Collections.Generic.ISet<>

c# - AutoMapper 区分大小写还是不区分大小写?

c# - AutoMapper.Mapper.CreateMap<TSource,TDestination>()' 已过时

identityserver4 的 Automapper 问题 - MissingMethodException : Method not found: '!!0 AutoMapper.IMapper.Map(System.Object)'

c# - 使用 AutoMapper 映射 'X' 类型的所有属性