Automapper ASP.NET CORE映射自定义泛型类型错误

时间:2017-09-22 14:28:10

标签: c# asp.net asp.net-core automapper

我有自己的泛型类型:PagedList<T>,负责分页,在我从存储库中获取查询并返回后,例如PagedList<User>进行服务,我的服务应返回PagedList<UserDTO> 。所以我尝试映射:
return _mapper.Map <PagedList<User>, PagedList<UserDTO>>(userList);这就是我得到的:

ArgumentException: 
App.Core.Paging.PagedList`1[App.Infrastructure.DTO.UserDTO] needs to have a 
constructor with 0 args or only optional args.
Parameter name: type
lambda_method(Closure , PagedList<User> , PagedList<UserDTO> , 
ResolutionContext )

AutoMapperMappingException: Error mapping types.

在我的mapper配置中: cfg.CreateMap<User, UserDTO>();
这还不够,还是我错过了什么?两个类中的属性都相同。

1 个答案:

答案 0 :(得分:0)

错误消息告诉您确切的问题:PagedList类需要AutoMapper可以使用的构造函数。最简单的选择是在类中添加一个空构造函数:

public class PagedList<T>
{
    //Add this:
    public PagedList() { }
}

但是,您需要确定这是否适合您的情况。